#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/12. Это потрясающе, спасибо вам! ваша помощь избавила меня от долгого времени утомительных поисков.
Ответ №1:
Шаблон |(?:(?!|).){50,}
соответствует началу |
и не гарантирует, что есть закрывающий.
Вы можете сопоставить канал, затем забыть, что сопоставлено до сих пор, и продолжить сопоставление 50 или более символов, отличных от a |
, утверждая один в конце.
|K[^|]{50,}(?=|)
Объяснение
|
Сопоставьте|
K
Забудьте, что соответствует до сих пор[^|]{50,}
Сопоставьте 50 раз любой символ, кроме|
(?=|)
Позитивный прогноз, утверждение a|
справа