Замените каждый 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).
