Дещо про мову регулярних виразів RegEx

Поширте інформацію:

В мові RegEx кожен вираз складається з одної або більше керівних команд. Деякі з них можна групувати (як групуються інструкції в програмі за допомогою операторних дужок), тоді вони вважаються однією командою.
Всі керівні команди поділяються на три класи:

  • прості символи, а також спеціальні символи, що заміняють їх
  • керівні конструкції (квантифікатори повторів, оператор альтернативи, групувальні дужки тощо)
  • так звані уявні символи – в рядку їх немає, однак вони позначають яку-небудь частину рядка. наприклад, його кінець)

Прості символи
Клас простих символів, справді, найпростіший. А саме, будь-який символ в рядку на RegEx позначає сам себе, якщо не належить до спеціальних символів.

До спеціальних символів належать такі:

. * ? + [ ] { } | $ ^

Наприклад, регулярний вираз “abcd” буде вибирати рядки, в яких зустрічається послідовність символів “abcd”.

Скасування дії спецсимволів

Якщо потрібно вставити у вираз один із спеціальних символів, але так, щоб він не позначав своєї спеціальної дії, поставте перед ним зворотній слеш. Наприклад, якщо ми шукаємо рядок, який містить фрагмент “a*b”, то маємо записати регулярний вираз “a\*b”.

Але в PHP цей вираз потрібно записати як “a\\*b”.

Групи символів

Звичайно ж,  RegEx дозволяє задавати не лише безпосередні частини шуканих рядків, як показано вище. Існують деякі спецсимволи, що позначають відразу групу простих символів. Ця можливість – один із наріжних каменів, основ регулярних виразів.

Найважливіший з таких знаків – крапка “.” – вона позначає будь-який один символ. Наприклад, вираз “a.b” відповідає рядкам “azb” або “aqb“, але не відповідає рядкам “aqwb” чи “ab“. Пізніше ми розглянемо, як заставити крапку позначати, скажімо,  рівно 5 будь-яких символів.

Може бути, що потрібно знайти не будь-який символ, а один з кількох конкретних. Для цього ті конкретні символи потрібно взяти у квадратні дужки. Наприклад, вираз “a[xXyY]c” відповідає рядкам, в яких є фрагменти по 3 символи,  які (фрагменти)  починаються з букви a, далі містять одну з таких букв: x,X,y,Y, і закінчуються буквою c. Якщо потрібно вставити поміж квадратних дужок сам символ  [ чи  ], то треба поставити перед ним зворотний слеш (в PHP – два слеші), щоб скасувати його спеціальну дію.

Якщо букв-альтернатив багато, і вони йдуть підряд, то не обов’язково перераховувати в квадратних дужках їх всі – можна вказати першу, поставити дефіс і вказати останню.  Такі групи можуть повторюватися. Наприклад, вираз “[a-z]” визначає будь-яку букву від a до z включно, а вираз “[a-zA-Z0-9_]” визначає будь-який алфавітно-цифровий символ.

Існує ще інший, іноді зручніший спосіб задавання великих груп символів. В мові RegEx в квадратних дужках можуть вказуватися не лише одиничні символи, але й спеціальні вирази. Ось їх повний список:

  • [:alpha:] – буква;
  • [:digit:] – цифра;
  • [:alnum:] – буква або цифра;
  • [:space:] – пропуск;
  • [:blank:] – пропуск або символи з кодами 0 і 255;
  • [:cntrl:] – спеціальний символ;
  • [:graph:] – символ псевдографіки

(Стаття не завершена.

Краще використовувати мову регулярних виразів PCRE, а не RegEx)

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.