Я не знаком с Regex, я использую Notepad++, чтобы попытаться очистить некоторые данные, которые я получил. Есть ли способ найти второе появление персонажа и поместить его на новую строку?

Например

1|name|surname|address|1|name|surname|address

Мне нужно найти второе появление числа «1» и поставить его на новую строку.

1|name|surname|address
1|name|surname|address

2 ответа2

0

Используйте это в диалоге замены:

  • Найти что: ^(1[^1]*)\|1(.*)$
  • Заменить на: \1\n1\2

Объяснение:

Поиск от начала строки для 1 сопровождаемый любым числом not-1 , сопровождаемым |1 , сопровождаемым любым символом до конца строки.

Замените на текст, который соответствует внутренней части первой круглой скобки, затем следует новая строка и 1 а затем текст, который соответствует внутренней части второй круглой скобки.

Не забудьте убедиться, что "Регулярное выражение" отмечено в "Режиме поиска".

0
  • Ctrl+H
  • Найти что: \|(?=1\|)
  • Замените на: \n или \r\n зависит от платформы
  • Заменить все

Объяснение:

\|      : a pipe, must be escaped because it has special meaning in regex
(?=     : start lookahead, a zero length assertion to be sure we have after
  1     :   the digit 1
  \|    :   a pipe
)       : end lookahead

Замена:

\n      : linebreak for linux files

или же

\r\n    : linebreak for windows
  • проверить обернуть
  • Проверьте регулярное выражение
  • НЕ ПРОВЕРИТЬ . matches newline

Результат для данного примера:

1|name|surname|address
1|name|surname|address

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .