У меня есть текстовые строки в Notepad++, как показано ниже:
dog cat duck fan dog donkey
я хочу заменить второе вхождение слова собака на павлина, как показано ниже.
dog cat duck fan peacock donkey
У меня есть текстовые строки в Notepad++, как показано ниже:
dog cat duck fan dog donkey
я хочу заменить второе вхождение слова собака на павлина, как показано ниже.
dog cat duck fan peacock donkey
Вы можете решить это с помощью так называемых регулярных выражений, см. Ниже. Я не уверен, знакомы ли вы с ними, но регулярное выражение (dog.*)(dog)
будет соответствовать всем строкам, где слово «собака» появляется дважды, и с помощью $1peacock
вы заменяете результат поиска первым часть матча (dog.*
), затем peacock
. Убедитесь, что для режима поиска в нижней части диалогового окна установлено «Регулярное выражение».
Это даст следующий результат:
Это n-е слово или второе вхождение слова для замены?
Для первого используйте регулярное выражение, подобное этому
Введите CTRL+h для замены окна.
В разделе Найти что: ^(([^ ]+ ){4})([^ ]+ )(.*)
Заменить на: $1peacock$3
Снимите все флажки и выберите переключатель Регулярное выражение
Чтобы объяснить RegEx:
^
якоря в начале строки, $
в конце строки()
создать группу захвата([^ ]+ )
[]
обозначает класс, ^
внутри означает отрицательный класс, так что это означает - не пробел, +
собирает хотя бы один, но как можно больше. сопровождается пробелом. Всего это будет соответствовать первому слову.{4}
получают 4 слова и, поскольку это заключено в другой набор скобок, эта группа захвата получает первые четыре слова([^ ]+ )
за которым следует остальная часть строки (.*)$
$1
заменяющим peacock
а оставшаяся часть строки $3
подбрасывает 5-е слово $2