Перевірка регулярних виразів

24

Від автора: вітаю вас, друзі. Якщо ви не знаєте як швидко і просто перевірити ваше регулярний вираз онлайн, тоді ця стаття саме для вас. У статті ви знайдете кілька онлайн сервісів для перевірки регулярних виразів, які дозволять перевірити шаблон регулярного виразу буквально за лічені секунди. Приступимо?

Насправді подібних сервісів десятки, якщо не сотні в мережі. Однак мені найбільше подобається два онлайн сервісу, які можна знайти за такими адресами.

regexr.com

Перевірка регулярних виразів

regexpal.com

Перевірка регулярних виразів

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

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

Можливий варіант шаблону регулярного виразу буде таким:

Перевірка регулярних виразів

Як бачите, виділені тільки логіни, які нам підходять. Тепер Давайте розберемо цей шаблон. Як ви пам’ятаєте, шаблон повинен бути обрамлений роздільниками, в даному випадку це слеші (//).

Після слешів йдуть так звані прапори (ще можна зустріти назви: символи внутрішніх опцій або модифікатори шаблону). Прапор i робить шаблон регістронезавісімий, тобто якщо в шаблоні ми вкажемо маленьку літеру a — вона співпаде як з символом a в нижньому, так і у верхньому регістрі.

Прапор g підтримується в JavaScript. У PHP для регулярних виразів даного прапора немає, але замість нього є функція preg_match_all(). Даний прапор шукає всі збіги в рядку. Без цього прапора буде знайдено тільки перше збіг.

Ну і прапор m забезпечує пошук в мультистрочном режимі. Без цього прапора шаблон працював би тільки з першим рядком тексту.

Всі ці прапори можна вибрати в меню flags в правому верхньому кутку програми.

Перевірка регулярних виразів

Йдемо далі. Ми будемо валідувати всю рядок з логіном від початку до кінця. Цього можна домогтися, вказавши якоря ^ (початок рядка) і $ (кінець рядка). Таким чином, якщо у всій рядку від початку до кінця буде хоч один недозволений символ — вся рядок не буде прийматися.

Квадратні дужки — [] — є символьним класом регулярних виразах. В символьному класі можна вказати набір символів, які ми хочемо знайти в рядку. В даному випадку ми дозволяємо латинські літери від a до z (завдяки прапору i дозволяються також літери A-Z верхнього регістра, цифри від 0 до 9, символ підкреслення і тире.

Ну і метасимвол + після символьного класу вказує на допустиму кількість перерахованих в символьному класі символів — це може бути 1 символ і більше (до нескінченності).

Як бачимо, все досить просто. При бажанні ми можемо скоротити регулярний вираз, замінивши його таким варіантом:

Перевірка регулярних виразів

Як бачимо, результат не змінився. \w у новому шаблоні відповідає латинських літер, цифр і символу підкреслення.

На цьому будемо завершувати цю статтю. Більше про регулярних виразах ви можете дізнатися з нашого курсу з регулярними виразами. Удачі!