Як працює тестер регулярних виразів
Що він показує
Скільки разів вираз знайшовся в тексті, і для перших десяти збігів – сам збіг, з якого символу він починається і що впіймала кожна група в дужках. Іменована група (?<рік>…) показується під своїм іменем, звичайна – під номером.
Який це рушій
PCRE – той самий, що в PHP, завжди в режимі Unicode. Тому кирилична літера – це один символ, а \w і [а-я] з прапорцем i працюють і з українськими літерами. Синтаксис майже збігається з JavaScript: класи, квантифікатори, групи, lookahead і lookbehind пишуться однаково. Відмінності є в рідкісних місцях, тож вираз для браузера варто ще раз перевірити там, де він працюватиме.
Прапорці
| Прапорець | Що змінює | |---|---| | i | великі й малі літери вважаються однаковими | | m | ^ і $ позначають початок і кінець кожного рядка, а не всього тексту | | s | крапка ловить і перенос рядка |
Прапорця g немає, бо він не потрібен: тестер завжди шукає всі збіги.
Коли вираз не працює
Якщо вираз не компілюється, сторінка покаже повідомлення рушія – англійською, з позицією помилки. Якщо вираз занадто важкий для тексту (типово це вкладене повторення на кшталт (a+)+), рушій зупиняється і сторінка так і каже. «Збігів немає» ви побачите лише тоді, коли вираз справді відпрацював і нічого не знайшов.
Часті питання про регулярні вирази
Чи треба писати скісні риски, як /abc/?
Ні. Пишіть лише вміст між ними, а прапорці вмикайте перемикачами.
Чому показано лише десять збігів?
Щоб картка лишалась читабельною. Кількість над списком – завжди повна.
Чи йде мій текст кудись далі?
Текст іде на сервер цього сайту в запиті на перевірку. Тестер його не записує, але як частина адреси запиту він може потрапити в журнал сервера. Паролі й персональні дані сюди не вставляйте.
Що означає «порожній рядок» у збігу?
Вираз на кшталт x* може збігтися з нулем символів. Такий збіг теж рахується, і тестер показує його чесно, щоб було видно, чому лічильник більший, ніж здавалось.