Замените каждый n-й экземпляр символа новой строкой в ​​Notepad++

У меня есть строка с разделителями трубы NAME|VALUE пары выглядят примерно так...

Name1|Value1|Name2|Value2|Name3|Value3

Что я хочу сделать, это заменить каждый второй экземпляр | с новой строкой, чтобы у меня было что-то вроде этого..

Name1|Value1
Name2|Value2
Name3|Value3

Моя проблема не в новой строке, так как я знаю, что могу использовать \r\n для этого, а скорее часть регулярного выражения, которая заменяет только каждый второй экземпляр |,

3 ответа

Решение

Найти: ([^\|]*\|[^\|]*)\|
Заменить на: \1\n

Я хочу заменить каждый второй экземпляр | с новой строкой

  • Меню "Поиск" > "Заменить" (или 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).

Другие вопросы по тегам