На лицо ужасные, добрые внутри. Это как раз про регулярные выражения. Читать их невозможно, только писать. Write-only.
А если вы умеете их писать, то ваша жись неимоверно облегчается, правда только тогда, когда вы заниметесь помногу обработкой текстов. Сисадмин или программер. Или очень технический писатель.
Термины
- оператор – символы, используемые в регулярных выражениях; они управляют поиском, но не участвуют в совпадении.
- совпадение – один или больше символов и операторов регулярного выражения, которые совпали с проверяемым текстом.
- квантификатор – оператор регулярного выражения, определяющий количество экземпляров повторяющегося совпадения.
- жадный (другое определение - «максимальный») – захватывает все доступные совпадения, после чего может их возвратить, если потребуется операторам справа. По умолчанию, все квантификаторы - «жадные».
- не жадный (другое определение - «минимальный») – захватывает совпадение только в том случае, если нет совпадения справа.
- захватывающий – жадный, никогда не возвращает захваченные совпадения.
- последовательное совпадение – последовательность одинаковых совпадений.
Словарь операторов
- символы
- <символ> – печатный символ: буквы, цифры, знаки препинания и т.д.
- . – произвольный символ
- подстрока – литеральный (такой, в котором нет операторов) набор символов.
- управление совпадением (квантификаторы)
- * – ноль или больше последовательных совпадений
- + – одно или больше последовательных совпадений
- ? – ноль или одно совпадение
- *? – не жадные ноль или больше последовательных совпадений
- +? – не жадные одно или больше последовательных совпадений
- *+ – захватывающие ноль или больше последовательных совпадений
- ++ – захватывающие одно или больше последовательных совпадений
- {n1,n2} – от n1 до n2 последовательных совпадений
- {n} – ровно n совпадений
- формирование последовательности – совпасть может только вся последовательность
- ( – начнём захватывать совпадения в последовательность и сохраним её в памяти (сохраняющие скобки)
- (?: – начнём захватывать совпадения в последовательность, но не сохраняем её (несохраняющие скобки)
- ) – завершим захватывать совпадения.
- | – альтернативная последовательность при отсутствии совпадения с последовательностью слева
- наборы символов – совпадает любой из символов
- [ – откроем набор символов
- ] – закроем набор символов
- - – укажем диапазон символов
- ^ – набор содержит все символы, кроме перечисленных
- позиционная проверка
- (?= – начнём проверку на наличие совпадения справа
- (?! – начнём проверку на отсутствие совпадения справа
- (?< = – начнём проверку на наличие совпадения слева
- (?<! – начнём проверку на отсутствие совпадения слева
- ) – завершим проверку
- ссылки на предыдущие совпадения
- \0..\9 – порядковый номер последовательности в сохраняющих скобках
citforum.ru/internet/articles/regexp_tutorial
Статья хороша тем, что на примере решения не самой простой задачи (разбор HTML) наглядно дается методика составления регулярных выражений. А как их читать - не рассказано. Потому как их невозможно читать, их можно только расшифровывать :)
Комментариев нет:
Отправить комментарий