2016-05-11 2 views
0

Возможно ли использовать значение регулярного выражения в части «НАЙТИ» для поиска/замены в Notepad ++?REGEX в Notepad ++ find/replace

Вот что у меня есть:

FIND: ^.{105}.*(.) 
REPLACE: \r\n 

значение для замены является 106-й символ в моем файле. давайте говорить, что это ~

теперь поиска/замены должны найти & заменить все вхождения ~ и заменить все из них «\ г \ п» (~ представляют собой символ конца строки)

Это Безразлично 't work, он заменяет всю строку вместо 106-го символа и заменяет только один раз, а не многократно на файл.

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

+0

текст ввода: [123456789 [..] 104 ~ line2 ~ line3randomtext ~ line4sometext] Ожидаемый результат: для этой строки текста: регулярное выражение должно получить 105-й символ (~ в этом случае), а затем найти и заменить все char, возвращаемый регулярным выражением (~ из примера) в тексте константным символом/r Итак, в данном случае переменная представляет собой текст в «находке» части поиска/замены, а константа - «replace by» text (\ р). ТЕКСТ ПОСЛЕ МОДИФИКАЦИИ: 123456789 [..] 104/rline2/rline3randomtext/rline4sometext –

ответ

2

Я думаю, что вы хотите что-то вдоль этих линий:

Find: ^(.{105}.) Replace: \1\r\n

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

+0

Это разрывает линию на несколько строк длиной 105 символов. Что нужно сделать для этой строки: [123456789 [..] 104 ~ line2 ~ line3randomtext ~ line4] regex получает thr 105th char (~ в этом случае), то найдите и замените все ~ в тексте на (/ r), так что в этом случае переменная - это текст, который нужно найти. заменяющий текст является жестко запрограммированным (\ r). –

+0

Это разрывает линию в нескольких строках из 105 символов. Ожидаемый результат: для этой строки текста: [123456789 [..] 104 ~ line2 ~ line3randomtext ~ line4sometext] Теперь регулярное выражение должно получить 105-й символ (в этом случае), затем найти и заменить все предыдущие символы char (~ из примера) в тексте константой char (/ r) Здесь переменная - это текст, который нужно найти. Константа - это заменяющий текст (\ r). –

0

Вы можете сделать:

Найти: ^(.{105}).
Заменить: $1\r\n

Убедитесь, что вы проверили Regular expression НО НЕ dot matches newline

нажмите Заменить все

Это будет захватывать в первой группе 105 charac в каждой строке.