Регулярные выражения онлайн урок.


Регулярное выражение (Regular Expression) - это специальная строка, которая описывает некоторое множество других строк. Например, строка, которая описывает любую цифру от 0 до 9 или строка, которая описывает любой символ алфавита. Как правило, регулярные выражения используются для поиска в тексте отдельных подстрок или сопоставление самой строки регулярному выражению.

Регулярные выражения могут содержать как обычные символы, так и специальные мета-символы, при помощи которых можно определить множество строк, которые будут соответствовать регулярному выражению.

Рассмотрим некоторые правила формирования регулярных выражений.

Мета-символ любого символа. Символ точки ( . ) является мета символом, который обозначает любой символ. Это означает, что строка регулярного выражения '.' может означать любую строку, которая содержит один любой символ, например 'f', '?', '5'.

Наборы символов. При помощи квадратных скобок [ ] можно определить множество символов, которые могут встречаться в строке. В самих скобках необходимо перечислить символы (регистро-зависимо) или указать диапазон, например:

  • [abc] - любой из перечисленных символов a, b, c. Например 'a'.

  • [0-9] - любая из цифр от 0 до 9 включительно, например '5', '1'

  • [a-zA-Z0-9] - любой символ алфавита (большие буквы или маленькие) или цифра от 0 до 9. Например, 't', 'U', 'e', '2'.


Квантификация. После указания набора символов можно указать длину подстроки, которую они должны формировать. Квантификаторы - это мета символы которые регулируют эту длину. Рассмотрим основные квантификаторы:

  • ? - один или ноль из предшествующей группы символов

  • + - один или более из предшествующей группы символов

  • * - ноль или более из предшествующей группы символов

  • {a,b} - количество символов из предшествующей группы символов не меньше a и не более b.


Рассмотрим несколько случаев:

  1. [0-9]+ - любая последовательность цифр, например '432','089','2','1212121'

  2. [a-zA-Z0-9]* - пустая строка или любая последовательность символов алфавита или цифр. Например, 'Hello12', 'Yo271', ''.

  3. index.html/? - строка 'index.html' или 'index.html/'


Группировка. Для группировки мета-символов и символов регулярного выражения, используются круглые скобки. Это необходимо, в частности, для определения приоритета действия мета-символов выражения, например hello-(yo-[abc])*-world определяет строки 'hello-yo-a-world', 'hello-yo-byo-b-world'

Альтернатива. Для указания регулярного выражения, которое задает некоторый вариант строки из нескольких, используют альтернативу. Для этого необходимо указать выражения, разделенные вертикальной чертой. Например, (mazda|honda)-1999 определяет строки 'mazda-1999', 'honda-1999'.