Я использую Notepad ++ и ищу регулярное выражение, которое может удалить каждое вхождение символа вертикальной черты |
, которое встречается перед плюсом +
, но не после.
Пример строки:
290167 275b93| e4dcab59949+k70ba3f31cc63|4d4746bd758ff618afc82556
Это должно быть:
290167 275b93 e4dcab59949+k70ba3f31cc63|4d4746bd758ff618afc82556
Вот регулярное выражение, которое я безрезультатно пытался изолировать:
[|](?<=[+])
(Строки содержат пробелы)
Вы на правильном пути, но ваша модель поиска немного неверна. Попробуйте эту версию:
Find: [|](?=.*[+])
Replace: (empty string)
Вот рабочая демонстрация:
Логика, которую вы хотите здесь, состоит в том, чтобы найти все каналы, если есть знак плюс, который появляется позже в строке. Положительный прогноз (?=.*[+])
подтверждает это.
Вам нужно искать +
в другом месте строки. (?<=
— это просмотр назад, вам это не нужно (синтаксис просмотра вперед — это (?=
), и нет необходимости в наборе символов с одним символом:
\|(?=[^+\n]*\+)
и заменить на пустую строку.
https://regex101.com/r/MpuWfp/2
Включите \n
в отрицательный набор символов, чтобы просмотр вперед не перемещался через разрывы строк.
спасибо, но когда я пытаюсь использовать notepad++, он находит | также после символа +. (когда линий больше)