2

У меня есть текстовые строки в Notepad++, как показано ниже:

dog cat duck fan dog donkey

я хочу заменить второе вхождение слова собака на павлина, как показано ниже.

dog cat duck fan peacock donkey

2 ответа2

2

Вы можете решить это с помощью так называемых регулярных выражений, см. Ниже. Я не уверен, знакомы ли вы с ними, но регулярное выражение (dog.*)(dog) будет соответствовать всем строкам, где слово «собака» появляется дважды, и с помощью $1peacock вы заменяете результат поиска первым часть матча (dog.*), затем peacock . Убедитесь, что для режима поиска в нижней части диалогового окна установлено «Регулярное выражение».

Это даст следующий результат:

0

Это n-е слово или второе вхождение слова для замены?

Для первого используйте регулярное выражение, подобное этому

Введите CTRL+h для замены окна.

В разделе Найти что: ^(([^ ]+ ){4})([^ ]+ )(.*)
Заменить на: $1peacock$3
Снимите все флажки и выберите переключатель Регулярное выражение

Чтобы объяснить RegEx:

  • ^ якоря в начале строки, $ в конце строки
  • () создать группу захвата
  • ([^ ]+ ) [] обозначает класс, ^ внутри означает отрицательный класс, так что это означает - не пробел, + собирает хотя бы один, но как можно больше. сопровождается пробелом. Всего это будет соответствовать первому слову.
  • следующие {4} получают 4 слова и, поскольку это заключено в другой набор скобок, эта группа захвата получает первые четыре слова
  • следующее слово и пробел - это то, что следует заменить ([^ ]+ ) за которым следует остальная часть строки (.*)$
  • Замена повторно вставляет первую (вложенную) группу с $1 заменяющим peacock а оставшаяся часть строки $3 подбрасывает 5-е слово $2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .