Замените каждый n-й экземпляр символа новой строкой в Notepad++
У меня есть строка с разделителями трубы NAME|VALUE
пары выглядят примерно так...
Name1|Value1|Name2|Value2|Name3|Value3
Что я хочу сделать, это заменить каждый второй экземпляр |
с новой строкой, чтобы у меня было что-то вроде этого..
Name1|Value1
Name2|Value2
Name3|Value3
Моя проблема не в новой строке, так как я знаю, что могу использовать \r\n
для этого, а скорее часть регулярного выражения, которая заменяет только каждый второй экземпляр |
,
3 ответа
Я хочу заменить каждый второй экземпляр | с новой строкой
Меню "Поиск" > "Заменить" (или Ctrl + H)
Установите "Найти что"
(.*?\|.*?)[\|]
Установите "Заменить" на
\1\r\n
Включить "Регулярное выражение"
Нажмите "Заменить все"
До:
Name1|Value1|Name2|Value2|Name3|Value3
После:
Name1|Value1
Name2|Value2
Name3|Value3
Заметки:
Выше предполагается, что вы редактируете текстовый файл с Windows EOL,
\r\n
,Если вы используете файлы с разными EOL, вы можете преобразовать их в Windows EOL, используя меню "Правка" > "Преобразование EOL".
Если вы не работаете с Windows EOL и не хотите преобразовывать их, используйте следующее:
использование
\n
вместо\r\n
для Unix/OS X EOLиспользование
\r
вместо\r\n
для Mac OS (до версии 9) EOL
дальнейшее чтение
Это попытка показать, как заменить каждый N-й символ символом новой строки без копирования частей последовательности. В таком случае необходимо число, чтобы сообщить движку, сколько повторений ожидается. В этом примере я хочу заменить каждое 13-е появление символа новой строкой. Вы можете увидеть 12 (13-1) повторений незахваченной группы плюс оставшийся текст перед 13-м символом в одной захваченной группе. Затем совпавший, но не захваченный 13-й символ будет заменен на\r\n
.
Найти то, что: ((?:.*?\@){12}.*?)\@
Заменить: $1\r\n
Проверьте режим обхода
поиска = регулярное выражение
Заменить все
Персонаж
@
следует заменить на фактический символ-разделитель (в шаблоне он повторяется два раза). Например, если ваш разделитель
|
, ваш шаблон будет
((?:.*?\|){12}.*?)\|
Кроме того, число
12
следует заменить вашим значением (N-1).