Прежде чем продемонстрировать применение классов Pattern и Matcher на практике, следует пояснить, каким образом составляется регулярное выражение.
Хотя ни одно из правил составления регулярных выражений нельзя назвать сложным, их очень много, и поэтому описать полностью все эти правила в одной статье просто невозможно.
Тем не менее ниже описываются некоторые из наиболее распространенных синтаксических конструкций регулярных выражений.
В общем, регулярное выражение состоит из обычных символов, классов символов (наборов символов), метасимволов и кванторов. Обычный символ сопоставляется в исходном виде. Так, если шаблон содержит пару символов «xy«, то с этим шаблоном может совпасть только входная последовательность «xy«.
Символы вроде новой строки и табуляции указываются с помощью стандартных управляющих последовательностей, начинающихся со знака обратной косой черты ( \ ).
Например, символ новой строки обозначается управляющей последовательностью \n. В терминологии регулярных выражений обычный символ иначе называется литералом.
Класс символов является набором символов. Класс символов можно задать, заключив символы этого класса в квадратные скобки. Например, класс символов [wxyz] совпадает с символами w, х, у или z. Чтобы задать обратный набор символов, перед ними следует указать знак ^.
Например, класс символов [^wxyz] совпадает с любым символом, кроме w, х, у и z. Диапазон символов указывается с помощью дефиса. Так, класс символов [1 — 9] совпадает с цифрами от 1 до 9.
Метасимволом служит знак точки ( . ) , совпадающий с любым символом. Таким образом, шаблон «.», состоящий только из знака точки, будет совпадать с любой из следующих (и других) входных последовательностей: «А» , «а» , «х» и т.д.
Квантор определяет, сколько раз совпадает выражение. Ниже перечислены кванторы, применяемые в регулярных выражениях.
- + Обозначает совпадение один раз или больше
- * Обозначает совпадение нуль или раз больше
- ? Обозначает совпадение нуль или один раз
Например, шаблон «х+» будет совпадать с последовательностями символов «х», «хх», «ххх» и т.п. И наконец, следует иметь в виду, что если регулярное выражение составлено неверно, то будет сгенерировано исключение типа PatterSyntaxException.