Notepad Поиск строк длиной 50 символов или более между двумя вертикальными полосами

#regex #string #notepad

#регулярное выражение #строка #notepad

Вопрос:

Я хотел бы попросить помощи с регулярным выражением для использования в Notepad , которое найдет любой текст длиной 50 или более и между 2 вертикальными полосами?

Пример:

 060801113494|I am writing a string that is longer that 50 characters|1054.70|2020-12-10 10:27:20|My Test|10511078
 

Я видел несколько примеров, и у меня есть эта версия, но она не работает:

  |(?:(?!|).){50,}
 

Строка может содержать специальные символы.

Спасибо тебе, Эрасмо.

Комментарии:

1.Вы могли бы исключить совпадение баров и утвердить закрывающий |K[^|]{50,}(?=|) regex101.com/r/fd2VSp/1

2. Это потрясающе, спасибо вам! ваша помощь избавила меня от долгого времени утомительных поисков.

Ответ №1:

Шаблон |(?:(?!|).){50,} соответствует началу | и не гарантирует, что есть закрывающий.

Вы можете сопоставить канал, затем забыть, что сопоставлено до сих пор, и продолжить сопоставление 50 или более символов, отличных от a | , утверждая один в конце.

 |K[^|]{50,}(?=|)
 

Объяснение

  • | Сопоставьте |
  • K Забудьте, что соответствует до сих пор
  • [^|]{50,} Сопоставьте 50 раз любой символ, кроме |
  • (?=|) Позитивный прогноз, утверждение a | справа

Демонстрация регулярных выражений

введите описание изображения здесь