Квадратные скобки ([ ]) имеют особый смысл в контексте регулярных выражений — они означают «любой символ из перечисленных в скобках». В отличие от регулярного выражения php, которое совпадает во всех строках, содержащих литеральный текст php, выражение [php] совпадает в любой строке, содержащей символы р или h. Квадратные скобки играют важную роль при работе с регулярными выражениями, поскольку в процессе поиска часто возникает задача поиска символов из заданного интервала. Ниже перечислены некоторые часто используемые интервалы:
[0-9] — совпадает с любой десятичной цифрой от 0 до 9;
[a-z] — совпадает с любым символом нижнего регистра от а до z;
[A-Z] — совпадает с любым символом верхнего регистра от А до Z;
[a -Z] — совпадает с любым символом нижнего или верхнего регистра от а до Z.
Конечно, перечисленные выше интервалы всего лишь демонстрируют общий принцип. Например, вы можете воспользоваться интервалом [0-3] для обозначения любой десятичной цифры от 0 до 3 или интервалом [b-v] для обозначения любого символа нижнего регистра от b до v. Короче говоря, интервалы определяются совершенно произвольно.
|
|
Именованные интервалы
Именованные интервалы символов являются предопределенными интервалами, имеющими удобочитаемое английское название, заключенное в двоеточия и квадратные кавычки.
[:alpha:] — буква;
[:digit:] — цифра;
[:alnum:] — буква или цифра;
[:space:] — пробельный символ;
[:blank:] — пробельный символ или символы с кодом 0 и 255;
[:cnrtl:] — управляющий символ;
[:graph:] — символ псевдографики;
[:lower:] — символ нижнего регистра;
[:upper:] — символ верхнего регистра;
[:print:] — печатаемый символ;
[:punct:] — знак пунктуации;
[:xdigit:] — цифра или буква от A до Z.
При применении, именованые интервалы должны заключаться в дополнительные кавычки:
abc[[:alnum:]]+ // abc, затем одна или более буква или цифра.
abc[[:alpha:][:punct]0] // abc, далее буква, знак пунктуации или 0.
Выражение
abc[:alnum:]+
Будет неправильным.
Квантификаторы
Существует особый класс служебных символов, обозначающих количество повторений отдельного символа или конструкции, заключенной в квадратные скобки. Эти служебные символы (+, * и {...}) называются квантификаторами. Принцип их действия проще всего пояснить на примерах:
р+ означает один или несколько символов р, стоящих подряд;
р* означает ноль и более символов р, стоящих подряд;
р? означает ноль или один символ р;
р{2} означает два символа р, стоящих подряд;
р{2,3} означает от двух до трех символов р, стоящих подряд;
р{2,} означает два и более символов р, стоящих подряд.