Статьи

Синтаксис регулярних виразів Java

Перш ніж продемонструвати застосування класів Pattern і   Matcher   на практиці, слід пояснити, яким чином складається регулярний вираз Перш ніж продемонструвати застосування класів Pattern і Matcher на практиці, слід пояснити, яким чином складається регулярний вираз.

Хоча жодне з правил складання регулярних виразів можна назвати складним, їх дуже багато, і тому описати повністю всі ці правила в одній статті просто неможливо.

Проте нижче описуються деякі з найбільш поширених синтаксичних конструкцій регулярних виразів.

Загалом, регулярний вираз складається зі звичайних символів, класів символів (наборів символів), метасимволов і кванторів. Звичайний символ зіставляється в початковому вигляді. Так, якщо шаблон містить пару символів "xy", то з цим шаблоном може збігтися тільки вхідна послідовність "xy".

Символи на кшталт нового рядка і табуляції вказуються за допомогою стандартних керуючих послідовностей, що починаються зі знака зворотної косої риски (\).

Наприклад, символ нового рядка позначається керуючої послідовністю \ n. У термінології регулярних виразів звичайний символ інакше називається літералом.

Клас символів є набором символів. Клас символів можна задати, уклавши символи цього класу в квадратні дужки. Наприклад, клас символів [wxyz] збігається з символами w, х, у або z. Щоб задати зворотний набір символів, перед ними слід вказати знак ^.

Наприклад, клас символів [^ wxyz] збігається з будь-яким символом, крім w, х, у і z. Набір символів вказується за допомогою дефіса. Так, клас символів [1 - 9] збігається з цифрами від 1 до 9.

Метасимволом служить знак точки (.), Що співпадає з будь-яким символом. Таким чином, шаблон ".", Що складається тільки з знака точки, буде збігатися з будь-якої з наступних (і інших) вхідних послідовностей: "А", "а", "г" і т.д.

Квантор визначає, скільки разів збігається вираз. Нижче перераховані квантори, що застосовуються в регулярних виразах.

  • + Позначає збіг один раз або більше
  • * Означає збіг нуль або раз більше
  • ? Позначає збіг нуль або один раз

Наприклад, шаблон "х +" буде збігатися з послідовностями символів "х", "хх", "ххх" і т.п. І нарешті, слід мати на увазі, що якщо регулярний вираз складено невірно, то буде згенеровано виняток типу PatterSyntaxException.

Новости