Notepad++ Попытка добавить символ ТОЛЬКО после первого пробела в каждой строке

Notepad++ Попытка добавить символ ТОЛЬКО после первого пробела в каждой строке

У меня есть 30 000 строк текста, в которых есть случайное количество пробелов. Мне нужно добавить символ только к первому ПРОБЕЛУ в каждой строке. Любой, кто может что-то предложить, был бы очень признателен.

решение1

  • Ctrl+H
  • Найти то, что:^\S+\h\K
  • Заменить:%
  • проверить Обернуть вокруг
  • проверить Регулярное выражение
  • Replace all

Объяснение:

^           # beginning of line
  \S+       # 1 or more non space
  \h        # 1 horizontal space
  \K        # forget all we've seen until this position

Замена:

%           # the character to insert

Данный:

I have 30,000 lines of text that have randon 
number of spaces in them. I need to add a character 
to just the first SPACE in each line. 
Any who can suggest anything would be 
greatly appreciated.

Результат для данного примера:

I %have 30,000 lines of text that have randon 
number %of spaces in them. I need to add a character 
to %just the first SPACE in each line. 
Any %who can suggest anything would be 
greatly %appreciated.

введите описание изображения здесь

решение2

Попробуйте TextPad. Вы можете записывать макросы, а затем воспроизводить их. Поэтому запишите то, что вы хотите сделать для первой строки, и после того, как вы закончите первую строку, оставьте курсор в начале следующей строки. Затем просто воспроизведите макрос до конца файла. Или просто удерживайте клавишу воспроизведения макроса.

https://www.textpad.com/

решение3

То, что вы ищете, это регулярные выражения. Первое, что вам нужно сделать, это превратить ваш поиск в регулярные выражения

введите описание изображения здесь

Радость, которую я испытываю, потому что я думаю, что я точно знаю, как решить эту проблему.

https://regex101.com/r/aW4gG2/1

Нужное вам выражение:
Найти: (^.*?)( )
Заменить:\1#\2

Это работает следующим образом в регулярных выражениях: ()означает «захват». Это означает, что он найдет эту весьма специфичную группу, а затем вы можете ссылаться на нее в замене с помощью \1 или \2 или \3. Число начинается с 1, и вы отсчитываете от открытой скобки

^означает начать с начала строки. (Поскольку вы хотите, чтобы ваша вставка закрывала ПЕРВЫЙ пробел, мы будем искать его, начиная с начала, найдя первый пробел)

.*?эта часть находит первое слово перед пробелом. Она делает это, объединяя в одну группу любые символы ( .) как можно больше ( *), но как можно меньше необходимых ?. Без вопросительного знака вы просто захватите каждый символ (включая все пробелы)

( )эта часть означает, что наша вторая группа — это пробел после первого. Это должен быть первый пробел. Это то, куда мы хотим вставить наш символ.

Замена

\1#\2

\1относится к первому набору символов. А *в выражении означает, что набор символов может быть словом любой длины, включая 0.

#это вставной символ

\2\это конечно же космос.

Результатом является размещение a #перед каждым первым пробелом. Если вы хотите, чтобы он был ПОСЛЕ первого пробела, это так же просто, как настройка замены

\1\2#будет ставиться #после каждого первого пробела в строке.


Вот в чем сила регулярных выражений. Простой поиск и замена могут выполнить вставку точнее, чем любой макрос. Это гибко, это быстро, и в большинстве случаев это не так уж и сложно.

Вот отличный начальный урок, который объяснит, что такое RegEx и почему он полезен. [RegExOne]. REO — это тот, кто помог мне понять,

Это руководство, которое рекомендуют многие люди, но, честно говоря, я не смог в нем ничего понять. [RegEx.Информация]

На самом деле я больше не возвращался к RegEx.info. Я сразу перешел кДокументация Notepad++что на самом деле было очень полезно в этот момент. Это и, конечно, вы можете проверить с помощью [РегВыражение101]. Единственное, что вам нужно сделать, это добавить /gmв выражение. Затем вы можете просто вставить фрагмент в TestString и практиковаться, пока не получите правильно.

введите описание изображения здесь

решение4

Для этого есть очень простое решение.

Я вспомнил, что в Notepad++ уже что-то есть.

  • Откройте окно «Заменить»
  • Введите «^» в поле «Найти», а затем пробел или любой другой символ, который вы хотите найти.
    Это позволит искать только то, что находится в начале строки.
  • Введите то, что вам нужно, в поле «Заменить на».
  • Установите режим поиска на «Регулярное выражение»
  • Нажмите «Заменить все».
  • Сделанный

Для дополнительной информации

Связанный контент