Комментарии 21
Регулярки - не сложно, но стоит ими не пользоваться какое-то время и полностью выветриваются из головы.
Благо есть куча сервисов, которые позволяют быстро вспомнить.
Да чем угодно не пользуйся какое-то время, и оно выветривается. И особенно печально когда от тебя на собесе хотят "вынь да положь".
очередной урезанный справочник :(
но регулярки обожаю!
Испанский язык очень простой, запомните "ола! " и "дос сервезас, пор фавор". Есть и другие слова, но он необоснованно усложняют язык и легко заменяются на уже изученные конструкции
Было бы хорошо соблюдать единую терминологию, тогда все и запоминается лучше и взаимопонимание проще.
Не повторения, а квантификаторы.
Не операторы, а метасимволы и якоря
И да, крайне важно не запоминать символы, а запоминать категории, чтобы понимать как они работают. Тогда и читать регулярки легко, и создавать адекватные, не излишне усложненные получается.
Добавьте подзаголовок "Рубрика вредные советы" для:
Нежадное сопоставление, *? и +? Это часто встречается при использовании набора символов. Вместо этого обычно можно использовать более строгий набор символов отрицания, например [^%].
Диапазоны повторения, например, {1,2}. Просто продублируйте свой шаблон или используйте? или * в группе.
На полном серьёзе такие замены называются "упрощением"
regex101: build, test, and debug regex
можно под конкретный язык
есть короткая и куда более полезная аннотация
ответ отлично парсится и описывается
....
Понятно есть много других, но я, если надо отладить выражение и процесс начинает стопориться, иду на него
Статья - просто трата времени
Вообще так, невредно понимать разницу в возможностях между регулярным конечным автоматом, всё состояние которого, грубо говоря, укладывается в одну переменную типа int, и стековым конечным автоматом, состояние которого - стек переменных типа int (тоже грубо говоря).
Например, никакая регулярка не сможет проверить сбалансированность скобок, а стековый автомат сделает это с лёгкостью.
В некоторых языках, например, Перл, регулярки умеют в рекурсию. Разумеется, такая грамматика совсем не регулярная, но с практической точки зрения это может быть удобно, если вдруг понадобится.
Обстоятельная статья на эту тему была: https://habr.com/ru/articles/545150/
Зачем плодить сущности - непонятно, тем более когда статья и не туда и не сюда. Чем мне нравится та статья, там достаточно примеров до и после, а именно этим понимается различие и работа регулярок (если кто-то не может продумать путь от конечных автоматов к регуляркам). Здесь - сухое описание не лучше дескриптивной документации. Мне также не нравится авторский стиль "ignore this" (или его форма прятать под спойлеры). Это текст и читается он сверху вниз и весь. Если бы это было введением к чему-то - ладно, но само по себе оно не состоятельно.
Здесь есть параллель с логикой булевых операций:
ab означает “a И b”
Не согласен с таким объяснением для новичков, это "a И ЗАТЕМ СЛЕДУЕТ b".
Категорически не согласен с "не используйте \w". Именно на шорткатах получаются действительно простые регулярки, которые даже легко читать. И поддерживаются они почти везде. В остальном же весьма любопытное изложение
Очень странный текст, я вроде регекс знаю чуток, но этот текст все равно тяжело понять. Почему это точки не нужны? Почему Вы говорите что вот эти сложные операторы "?:" не нужны, зачем вы тогда их сюда вообще включили. Не понятно. Да и сами определения в Вашей статье приходилось перечитывать по нескольку раз чтобы понять, что у Вас там написано.
с регулярками самое главное - это регулярность! )))
А вообще есть один момент, который подзапаривает. В нектоых продуктах, например SIEM-системах, системах логгирования и мониторинга, антииврусах можно использовать регулярки. Но вот что ставит в ступор, так это то, что в каждой из этих систем не все выражения поддерживаются, те, что поддерживаются могут работать не так или по дргому как принято. И об этом написано под маленькой звездочкой где-то в корпоративной документации, которую еще надо найти.
Регулярные выражения — это не трудно