Конструктор регулярных выражений online php

Обновлено: 02.05.2024

Регулярные выражения (англ. «regular expressions», жарг. «регэкспы» или «регексы») —- современная система поиска текстовых фрагментов в электронных документах, основанная на специальной системе записи образцов для поиска. Образец (англ. «pattern»), задающий правило поиска, по-русски также иногда называют «шаблоном», «маской», или на английский манер «паттерном». Регулярные выражения произвели прорыв в электронной обработке текста в конце XX века.

Регулярные выражения (regex) являются важной составной частью текстовых редакторов, инструментов поиска и большинства основных языков программирования, которые поддерживают регулярные выражения для работы со строками. Например, Perl и Tcl имеют встроенный в их синтаксис механизм обработки регулярных выражений. Набор утилит (включая редактор sed и фильтр grep), поставляемых в дистрибутивах Unix, одним из первых способствовал популяризации понятия регулярных выражений.

Регулярные выражения по существу, представляют собой мощный и очень гибкий язык описаний для поиска (строк) по шаблону. С помощью регулярных выражений можно:

  • Проверять, соответствует ли вся строка целиком заданному шаблону.
  • Находить в строке подстроки, удовлетворяющие заданному шаблону.
  • Извлекать из строки подстроки, соответствующие заданному шаблону.
  • Изменять в строке подстроки, соответствующие шаблону.

Начните изучение с конструктора выражений и примеров, одновременно сопоставляя полученные знания с документацией и статьями по регулярным выражениям.

Для работы конструктора регулярных выражений требуется поддержка интернет-обозревателем языка Javascript. Кроме того, конструктор имеет ряд ограничений, связанных с различной поддержкой регулярных выражений в каждом отдельно взятом интернет-обозревателе.

Автор проекта также не осуществляет консультирования посетителей сайта по вопросам составления тех или иных регулярных выражений из-за отсутствия лишнего свободного времени.

Добавить пример

Примеры

Примеры шаблонов регулярных выражений. Если вы хотите разместить в данном разделе свой шаблон, обратитесь к редактору сайта.

быстрая проверка регулярных выражений
конструктор регулярных выражений
оптимизатор длины регулярки

Регулярные выражения прочно вошли в жизнь разработчиков и частенько приходят на помощь в тех ситуациях, когда необходимо осуществить специфический поиск или подстановку. Многие текстовые редакторы, программы и утилиты поддерживают поиск по регулярным выражениям (TotalCommander, Notepad++ и пр.), чем значительно облегчают жизнь тем, кто ищет.

Итак, чем располагает наш сервис:


    Проверка регулярного выражения с подсветкой синтаксиса. Поможет быстро проверить работоспособность выражения на конкретном примере, достаточно поместить текст в поле "Введите пример текста" и начать вводить регулярное выражение.
    Позволит Вам максимально просто и в кратчайшие сроки собрать регулярное выражение, пользуясь подсказками и проверяя его на реальных функциях поиска и подстановки в PHP и Javascript. На странице конструктора справа от формы для тестирования расположен блок метасимволов, разбитый по категориям. При наведении на символ будет показана краткая информации о нем и пример использования.
    Сократит Ваше выражение путем эквивалентных замен до минимального количества символов для повышения читабельности, простоты и понимания.
  • Сохраняйте Ваши регулярки и делитесь ссылкой с друзьями и коллегами. Сделать это достаточно просто: заполните поля "Введите регулярное выражение" и "Введите пример текста" на странице конструктора, и жмите кнопку «Сохранить». После сохранения Вы получаете ссылку.
  • Весь интерфейс сервиса прост и интуитивно понятен, а если нет - то милости просим на страницу FAQ

Если у Вас возникают вопросы, предложения и пожелания, воспользуйтесь контактной формой для связи с администрацией сайта.

Должен находиться внутри квадратных скобок (иначе интерпретируется как граница слова).

Например, последовательность \cM\cJ соответствует управляющим символам CR LF.

Эквивалентно \x01 … \x1A.

Символьные классы POSIX

Позиция внутри строки

Представление Позиция Пример Соответствие
^ Начало строки ^a a aa aaa
$ Конец строки a$ aaa aa a
\b Граница слова a\b aa a aa a
\ba a aa a aa
\B Не граница слова \Ba\B a a a a a a
\G Предыдущий успешный поиск \Ga aaa aaa (поиск остановился на 4-й позиции — там, где не нашлось a)

Представление символов по их коду

Квантификация (поиск последовательностей)

Представление Число повторений Пример Соответствие
n> Ровно n раз colour colouuur
m,n> От m до n включительно colour colouur, colouuur, colouuuur
m,> Не менее m colour colouur, colouuur, colouuuur и т. д.
n> Не более n colour color, colour, colouur, colouuur

Представление Число повторений Эквивалент Пример Соответствие
* Ноль или более colou*r color, colour и т. д.
+ Одно или более colou r colour, colouur и т. д. (но не color)
? Ноль или одно colou?r color, colour

Перечисление

Вертикальная черта разделяет допустимые варианты. Например, gray|grey соответствует gray или grey. Следует помнить, что перебор вариантов выполняется слева направо, как они указаны.

Если требуется указать перечень вариантов внутри более сложного регулярного выражения, то его нужно заключить в группу. Например, gray|grey или gr(a|e)y описывают строку gray или grey. В случае с односимвольными альтернативами предпочтителен вариант gr[ae]y, так как сравнение с символьным классом выполняется проще, чем обработка группы с проверкой на все её возможные модификаторы и генерацией обратной связи.

CyrilEx is an online regex debugger, it allows you to test regular expression in PHP (PCRE), Python, Ruby, JavaScript, Java and MySQL. It helps you to test and debug regex online, you can visualize the matches when matching a string against a regex.

A regex visualizer allows to visualize your regex, it helps to understand it. This feature is useful for large regexes.

Cyrilex also allows you to generate a string example from a RegEx. This gives a pretty quick idea of a regex.

You can consult the regex Quick Start or see the full user guide to help you to use this regular expression tester.

User guide

  • Step 0: Choose the regex engine: JavaScript, Ruby, Java or PCRE (PHP, Python).
  • Step 1: Copy and paste or directly type your regular expression to test in the "Regular expression to test" field.
  • Step 2: Select the flags you want in "Flags" section.
  • Step 3: Copy and paste or directly type your test string in the "test string" field.
  • As soon as you make a modification (regular expression, flags or test string):
    • Step 4: An explanation is generated about of your regex. It uses regulex, it is a JavaScript Regular Expression Parser & Visualizer (Written in pure JavaScript).
    • Step 5: A message indicates the number of correspondence
    • Your regex is highlighted according to the syntax. It is a beta version, it can be wrong.

    regex tester user guide

    Step 6: Copy and paste or directly type your substitute string in the "Substitution" field.

    Step 7: Substitutions are automatically performed on your test string.

    regex tester user guide

    share regex tester

    Generate a string from RegEx (Beta):
    Clicks on "Generate a string from RegEx (Beta)" in order to generate a string that matches with the regex.

    Substitutions are not managed.

    News: You can now test MySQL regex, select the "MySQL 8" engine.

    About regular expression

    A regular expression is a sequence of characters that define a search pattern. This pattern is used by string searching algorithms for find or replace text. It can be useful to validate an EMAIL address or an IP address.

    Regex support is part of the standard library of many programming languages. Each programming language has its own regex engine, regular expression implementations vary slightly between languages.

    Regex humor (Jamie Zawinski):
    Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.

    Regex checker

    Cyrilex is an online regex checker, it allows to easily test and debug regex. This avoids wasting time writing the few lines of code needed to do the tests.

    A regex visualizer and a regex generator help you to understand and debug your regexes.

    This tool also allows you to share your regular expressions, this can be useful when you want to explain one of your regex problems (or its resolution) on a forum.

    The unavoidables

    Some regex that can be useful (without warranty).

    Email address

    The last RFC is complex, there is no reliable solution, this regex should work more than 99% of the time (You must turn off case sensitivity).

    Alphanumeric

    The regex below allows to validate alphanumeric string. Be careful, \w authorizes the underscore character.

    33 самые полезные регулярки с примерами использования для быстрого решения наиболее распространенных задач веб-разработки.

    33 самые полезные регулярки для веб-разработчика

    Пользовательские данные

    1. Юзернейм

    Стандартный формат юзернейма – цифры, строчные буквы, символы - и _ . Разумная длина – от 3 до 16 знаков. В зависимости от ваших конкретных потребностей вы можете изменять набор символов (например, разрешить символ * ) и длину строки.

    JS:

    Что используем:
    Символы ^ и $ указывают на начало и конец строки, так что введенный юзернейм будет проверен на совпадение полностью от первого до последнего символа.

    2. Валидация email

    Проверка адреса электронной почты на корректность – одна из самых частых задач веб-разработчика. Без этого не обходятся ни разнообразные формы подписки, ни авторизация.

    Для валидации email существует множество различных регулярок. Вот одна из них – не самая большая и не самая сложная, но достаточно точная для быстрой проверки адреса:

    JS:

    Что используем:
    Флаг i в регулярных выражений обеспечивает регистронезависимость сравнения.

    3. Номер телефона

    Проверяя номер телефона, обязательно учитывайте общепринятые форматы, так как в разных странах их принято записывать по-разному. Например, для американского стиля подойдет вот такая регулярка:

    JS:

    Что используем:
    Квантификатор ? соответствует одному предыдущему символу или его отсутствию.

    4. Надёжность пароля

    Часто встречаете на различных сервисах требование придумать сложный пароль? Кто и как определяет требуемую степень сложности? На самом деле, для этого есть некоторые стандарты: минимальная длина, разный регистр символов, наличие букв, цифр и специальных знаков.

    Чтобы обеспечить ваших пользователей надежными паролями, можете воспользоваться вот таким выражением (или составить собственные регулярки со специфическими требованиями):

    JS:

    Что используем:
    Оператор ?= внутри скобочной группы позволяет искать совпадения "просматривая вперед" переданную строку и не включать найденный фрагмент в результирующий массив.

    Подробнее о надежности паролей вы можете узнать из этого руководства.

    5. Почтовый индекс (zip-code)

    Формат почтового индекса, как и телефона, зависит от конкретного государства.

    В России все просто: шесть цифр подряд без разделителей.

    Американский zip-code может состоять из 5 символов или в расширенном формате ZIP+4 – из 9.

    JS:

    Что используем:
    Последовательность ?: внутри скобочной группы исключает ее из запоминания.

    6. Номер кредитной карты

    Разумеется, при проверке номера платежной карты не стоит полагаться на регулярные выражения. Однако с их помощью вы можете сразу же отсеять очевидно неподходящие последовательности и не нагружать сервер лишним запросом.

    С помощью вот такой длинной регулярки вы можете поддерживать сразу несколько платежных систем:

    Подробнее разобраться, откуда что взялось, вы можете здесь.

    Что используем:
    Вертикальная черта | в регулярных выражениях обозначает альтернацию, то есть выбор одного варианта из нескольких.

    Распространенные форматы

    7. Начальные и конечные пробелы

    Пробелы в начале и конце строки обычно не несут никакой смысловой нагрузки, но могут повлиять на анализ и обработку данных, поэтому от них следует сразу же избавляться.

    JS:

    Что используем:
    Квантификатор + соответствует инструкции – один и более символов.

    8. Дата

    С датами приходится работать очень часто, а форматов записи у них великое множество. Прежде чем начинать обработку, имеет смысл проверить, соответствует ли вид переданной строки требуемому.

    Вот такое регулярное выражение поддерживает несколько форматов дат – с полными и краткими числами (5-1-91 и 05-01-1991) и разными разделителями (точка, прямой или обратный слеш).

    Здесь учитываются даже високосные годы!

    JS:

    Что используем:
    Последовательности вида \1 , \2 и так далее – это обратные ссылки на скобочные группы, определяющие вид разделителя. Благодаря им можно отсеять даты с разными разделителями:

    9. IPv4

    Адрес IP используется для идентификации конкретного компьютера в интернете Он состоит из четырех групп цифр (байтов), разделенных точками (192.0.2.235).

    Что используем:
    Класс \b означает "границу слова" и имеет нулевую ширину (то есть это не отдельный символ).

    10. IPv6

    IPv6 – это новый, более сложный синтаксис IP-протокола. Выражение для проверки на этот формат выглядит куда страшнее, хотя на самом деле разница заключается только в поддержке шестнадцатеричных чисел:

    11. Base64

    Base64 – достаточно распространенный формат кодирования бинарных данных, который часто используется, например, в email-рассылках.

    Для валидации строки в этом формате можно использовать следующее регулярное выражение:

    12. ISBN

    ISBN – международная номенклатура для печатных книг. Номер может состоять из 10 (ISBN-10) или 13 цифр (ISBN-13). На самих книгах ISBN обычно разделен дефисами на несколько групп (код страны, издательства и самой книги), но для проверки и использования их следует удалять.

    Это регулярное выражение позволяет проверить оба формата сразу:

    JS:

    Числа

    13. Проверка на число

    Очень простая проверка строки на число с помощью регулярок:

    JS:

    14. Разделитель разрядов

    Задача разбить большое число на разряды по три цифры встречается в разработке довольно часто. Оказывается это очень легко сделать с помощью регулярок.

    JS:

    Что используем:
    Комбинация $& в строке замены позволяет подставить найденную комбинацию.

    15. Цена

    Цены могут быть представлены во множестве различных форматов. Универсального регулярного выражения для них, скорее всего, не существует, но цену в долларах из строки извлечь очень просто.

    Эта регулярка предполагает, что для разделения разрядов числа используются запятые, а дробная часть отделена точкой:

    JS:

    Что используем:
    Комбинация означает, что символ из диапазона 7 должен быть повторен ровно 2 раза (дробная часть цены).

    Файлы и URL

    16. Сопоставить строку URL

    Если вам необходимо проверить, является ли полученная строка URL-адресом, вы можете воспользоваться вот такой регуляркой:

    JS:

    17. Извлечение домена

    В URL-адресе много частей: протокол, домен, поддомены, путь к странице и строка запроса. С помощью регулярок можно отбросить все лишнее и получить только домен:

    JS:

    Что используем:
    Метод match возвращает объект с данными совпадения. Под индексом 1 в нем хранится совпадение, соответствующее первой скобочной группе.

    18. Расширения

    Одна строчка регулярного выражения позволяет быстро и просто получить расширение файла, с которым вам предстоит работать:

    JS:

    Разумеется, при необходимости сюда можно добавлять другие расширения.

    19. Протокол

    Иногда требуется извлечь протокол полученной ссылки. Регулярные выражения и тут облегчают жизнь:

    JS:

    Социальные сети

    20. Twitter

    Имя пользователя Twitter:

    21. Facebook

    URL аккаунта на Facebook:

    22. YouTube

    Получение ID видео на YouTube:

    JS:

    Что используем:
    Метод exec объекта регулярного выражения работает почти так же, как метод match строки.

    HTML и CSS

    23. HEX-цвета

    Веб-разработчику часто приходится иметь дело с цветами, заданными в шестнадцатеричном формате. Регулярки позволяют легко извлекать такие цвета из строки:

    24. Адрес изображения

    Для получения адреса изображения обычно используется DOM-метод img.getAttribute('src') . Регулярки для этого применяются редко, но полезно все же знать их возможности:

    JS:

    25. CSS-свойства

    Еще одна нетривиальная ситуация – получение свойств CSS с помощью регулярных выражений:

    JS:

    Что используем:
    Флаг m в регулярных выражениях включает многострочный режим.

    26. HTML комментарии

    А это очень полезная регулярка для удаления комментариев из HTML-кода:

    Что используем?
    Символ ? , стоящий в регулярном выражении после другого квантификатора, переводит его в ленивый режим.

    27. Title

    Получить заголовок веб-страницы можно с помощью такого регулярного выражения:

    28. rel=«nofollow»

    Важная SEO-задача, которую очень не хочется делать вручную, – добавление внешним ссылкам атрибута rel="nofollow" . Обратимся к регулярным выражениям:

    PHP:

    29. Медиа запросы

    Если требуется проанализировать медиа-запросы CSS, воспользуйтесь этой регуляркой:

    Что используем:
    Класс \s обозначает пробельный символ (а также таб и перевод строки), а класс \S – наоборот, любой символ кроме пробельного.

    30. Подсветка слов

    Полезное выражение для поиска и выделения слов в тексте:

    JS:

    PHP:

    Разумеется, слово ipsum можно заменить на любое другое слово или словосочетание

    Другие задачи веб-разработчика

    31. Проверка версии Internet Explorer

    К счастью, старый добрый IE постепенно уходит в прошлое, но он все же еще играет некоторую роль в современном вебе. Этот фрагмент кода позволяет определить версию всеми любимого браузера:

    32. Удалить повторы

    Регулярки дают возможность автоматически удалить случайные повторы слов без проглядывания всего текста:

    JS:

    33. Количество слов

    Порой веб-разработчику необходимо определить количество слов в строке, например, для организации ключевых слов в инструментах аналитики. Сделать это можно с помощью следующих регулярок:

    Читайте также: