Я хотел бы попросить помощи с регулярным выражением для использования в Notepad ++, которое найдет любой текст длиной 50 и более и между двумя вертикальными чертами?
Пример:
060801113494|I am writing a string that is longer that 50 characters|1054.70|2020-12-10 10:27:20|My Test|10511078
Я видел несколько примеров и имею эту версию, но она не работает:
\|(?:(?!\|).){50,}
Строка может содержать специальные символы.
Спасибо, Эразмо
Это потрясающе, спасибо! Ваша помощь избавила меня от долгих утомительных поисков.
Паттерн \|(?:(?!\|).){50,}
соответствует ведущему |
и не гарантирует наличие закрывающего.
Вы можете сопоставить вертикальную черту, а затем забыть, что совпало до сих пор, и продолжить сопоставление 50 или более символов, кроме |
, утверждая один в конце.
\|\K[^|]{50,}(?=\|)
Объяснение
\|
Подбери |
\K
Забудьте, что совпало до сих пор[^|]{50,}
Сопоставьте 50+ любых символов, кроме |
(?=\|)
Положительный взгляд вперед, установите |
справа
Вы можете исключить совпадение баров и утвердить закрывающий
\|\K[^|]{50,}(?=\|)
regex101.com/r/fd2VSp/1