0-9] означает любой символы, кроме 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
\# — Следующий за слэшем символ # (кроме a-z и 0-9). Например, \\ означает символ \, \. означает символ . (точка), \$ означает символ $ и т. д.
\b — Начало слова
\B — Конец слова
[[:alnum:]] — буквенно-цифровые символы
[[:digit:]] — десятичные цифровые символы
[[:xdigit:]] — шестнадцатеричные цифровые символы
[[:alpha:]] — буквенные символы
[[:upper:]] — прописные буквенные символы
[[:lower:]] — строчные буквенные символы
[[:punct:]] — знаки пунктуации
[[:space:]] — символы пробела
[[:blanc:]] — символы табуляции и пробела
[[:print:]] — печатные символы
[[:cntrl:]] — управляющие символы
[[:graph:]] — печатные символы, за исключением пробельные

\xNN — NN — шестнадцатеричный код ASCII-символа (\x20 — пробел, \x4A — J, \x6A — j и т. д.)
\t — символ табуляции
\n — новая строка
\r — перевод каретки
— перевод формата
\v — вертикальная табуляция
\a — звонок
\e — escape
\033 — восьмеричная запись символа
\x1A — шестнадцатеричная
\c — control символ
\l — нижний регистр следующего символа
\u — верхний регистр -//-
\L — все символы в нижнем регистре до \E

\U — в верхнем -//-
\E — ограничитель смены регистра
\Q — отмена действия как метасимвола

\w — алфавитно-цифровой или ‘_’ символ
\W — не -//-
\s — один пробел
\S — один не пробел
\d — одна цифр
\D — одна не цифра

\b — граница слова
\B — не граница слова
\A — начало строки для каждой строки в многострочной строке
\Z — конец строки для каждой строки в многострочной строке
\G — конец действия m//g

( . .. ) — Сгруппировать символы в один паттерн и запомнить
| — Предыдущий или следующий паттерн (логическое «ИЛИ»)
* — Ноль или больше раз
+ — Один или больше раз
? — 0 или 1 раз предыдущая маска
{n} — Повторять n раз
{n,} — Повторять n или больше раз
{n,m} — Повторять от n до m раз
?#N — Это оператор «просмотра назад». N — число символов для просмотра.

?~N — Отрицание просмотра назад.
?= — Просмотр вперед.
?! — Отрицание просмотра вперед.

i — не различать строчные и заглавные буквы.
m — считать строку многострочной.
s — однострочная строка.
x — расширенный синтаксис ( использование пробелов и комментариев)
e — после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки.
A — соответствие шаблону будет достигаться только в том случае, если он соответствует началу строки, в которой производится поиск.

D — метасимвол $ в шаблоне соответствует только окончанию обрабатываемых данных. Без этого модификатора метасимвол $ соответствует также позиции перед последним символом, в случае, если им является перевод строки (но не распространяется на любые другие переводы строк). Данный модификатор игнорируется, если используется модификатор m. В языке Perl аналогичный модификатор отсутствует.
S — если данный модификатор используется, проводится дополнительный анализ шаблона. В настоящем это имеет смысл только для фиксированных шаблонов, не содержащих переменных ссылок.
U
— модификатор инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ ‘?’. Такая возможность не совместима с Perl. Модификатор U также может использоваться внутри шаблона, при помощи ‘?U’ записи.
X — включает дополнительную функциональность PCRE, которая не совместима с Perl: любой обратный слеш в шаблоне, за которым следует символ, не имеющий специального значения, приводят к ошибке. Это обусловлено тем, что подобные комбинации зарезервированы для дальнейшего развития. По умолчанию же, как и в Perl, слеш со следующим за ним символом без специального значения трактуется как as опечатка. На сегодняшний день это все возможности, которые управляются данным модификатором
u — включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблоны обрабатываются как UTF8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ.

(?#комментарий) — комментарий в теле шаблона.
(?:шаблон) — группировка как и ‘( )’, но без обратной ссылки
(?=шаблон) — «заглядывание» вперед. Например /\w+(?=\t)/ соответствует слову, за которым идет табуляция, но символ ‘\t’ не включается в результат.

\ЧИСЛО — Ссылка внутри регэкспа на его же разобранную скобку, где ЧИСЛО — номер нужной группы (скобки). Этот оператор работает с некоторыми ограничениями на тип ссылаемого блока — он работает, только если в ссылаемой скобке нет операторов повторения.

Regex Tester Online — PHP Perl PCRE Compatible

Share

https://www.online-toolz.com/tools/regex-tester-online.php

Используйте этот инструмент для тестирования шаблонов RegEx на TextNote:На этой странице используются функции PHP Perl Compatible Regular ExpressionsReference:http://www.pcre.org/pcre.txt


RegEx Паттерн

Текст
The Egyptian Revolution of 2011 (Arabic: الثورة المصرية سنة 2011‎ al-Thawrah al-Miṣriyyah sanat 2011), sometimes called the 25 January Revolution (ثورة 25 يناير Thawrat 25 Yanāyir),[11] the Revolution of the Youth (ثورة الشباب Thawrat al-Shabāb) or the White Revolution (الثورة البيضاء al-Thawrah al-bayḍāʾ), is a social movement that began in Egypt on 25 January, 2011, characterised by a series of street demonstrations, marches, rallies, acts of civil disobedience, riots, labour strikes, and violent clashes; the date was selected to coincide with the National Police Day.
The protests were largest in Cairo and Alexandria, with significant activities in other cities of Egypt.[12]
Result

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

Некоторые из этих языков, включая Perl, Ruby, Awk и Tcl, полностью интегрировали регулярные выражения в синтакс самого языка. Другие, такие как C++,.NET, Java, Python и вместо этого предоставляют доступ к регулярным выражениям только через библиотеки.

Source: Wikipedia

AKA:

Tester , Editor , Validator , RegExp , Regular Expression , Evaluator , Parser, regular expression tester, regex online, regex checker, regex live, javascript regex test, regex pattern online

Использование регулярных выражений в PHP — SitePoint

Программирование

    Share

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

    Что такое регулярные выражения?

    Регулярные выражения появились как функция оболочки Unix. Они были разработаны, чтобы упростить поиск, замену и работу со строками, и с момента их изобретения они широко использовались во многих различных частях операционных систем на основе Unix. Они обычно использовались в Perl и с тех пор были реализованы в PHP.

    Для чего я могу их использовать?

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

    Вы также можете использовать их для выполнения сложных операций поиска и замены в заданном тексте, которые были бы невозможны со стандартной функцией PHP str_replace . Да, возможности безграничны!

    Как их использовать?

    Давайте посмотрим, как мы можем использовать регулярное выражение для проверки синтаксиса адреса электронной почты, введенного в форму, отправленную в PHP-скрипт.

    В PHP есть два типа функций регулярных выражений:

  • функции ereg — стандартный синтаксис регулярных выражений PHP
  • функции preg , использующие Perl-совместимый синтаксис регулярных выражений

    В этой статье мы будем использовать функцию eregi . Функция eregi используется для сопоставления строки с определенным регулярным выражением. « i » в названии функции означает «без учета регистра» — вы также можете использовать ereg , если хотите, чтобы регистр был чувствительным.

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

    Теперь, как вы знаете, адрес электронной почты всегда в определенном формате:

    имя пользователя @ домен . расширение

    Это делает их идеальными кандидатами для проверки с помощью регулярных выражений. Итак, давайте посмотрим на выражение, которое я написал для проверки правильности адреса электронной почты. Мы рассмотрим каждый раздел выражения по отдельности, а затем я включу ссылку на синтаксис в конце статьи. Но сначала само выражение: 9 ) в начале выражения представляет собой начало строки. Если бы мы не включили это, то кто-то мог бы ввести что угодно перед адресом электронной почты, и это все равно было бы подтверждено.

    В квадратных скобках указаны символы, которые мы хотим разрешить в этой части адреса. Здесь разрешены буквы a-z, A-Z, цифры 0-9 и символы подчеркивания ( _ ), точки ( . ) и тире ( - ). Как вы, наверное, заметили, я включил буквы как в верхнем, так и в нижнем регистре. В данном случае это не обязательно, так как мы используем функцию eregi (без учета регистра). Но я включил их сюда для полноты картины и чтобы показать вам, как работают эти функции. Порядок пар символов в скобках не имеет значения.

    Знак плюс ( + ) после квадратных скобок указывает на «одно или несколько из содержимого предыдущих скобок». Таким образом, в этом случае мы требуем, чтобы один или несколько любых символов в квадратных скобках были включены в адрес, чтобы он прошел проверку. Наконец, есть знак « @ », что означает, что мы требуем наличия одного знака @ сразу после имени пользователя.

     [a-zA-Z0-9._-]+. 

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

    В конце этого раздела стоит обратная косая черта, затем знак точки. Это сообщает выражению, что в этой точке выражения требуется точка (т. е. между доменом и расширением). Однако обратная косая черта немного сложнее. В регулярном выражении точка на самом деле означает «любой символ». Чтобы заставить это выражение принимать буквальное значение точки, а не использовать его в качестве подстановочного знака для любого символа, нам нужно «экранировать» его — это делается путем предшествующей точке обратной косой черты. Возможно, вы сталкивались с этим раньше, если вы используете базы данных, такие как MySQL, так как экранирование символов там тоже очень важно.

     [a-zA-Z]{2,4}$ 

    Это последняя часть выражения. В начале находится еще один набор символов, заключенный в квадратные скобки. На этот раз я просто разрешил использовать буквы a-z и A-Z, потому что числа и другие символы недопустимы в расширениях домена.

    Вместо знака + , который мы использовали ранее, здесь у нас есть « {2,4} » сразу после квадратных скобок. Это означает, что нам требуется от 2 до 4 символов из квадратных скобок, которые должны быть включены в адрес электронной почты. Таким образом, com, net, org, uk, au и т. д. действительны, но все, что длиннее, не принимается.

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

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

      if (!$_REQUEST['action']) {   
    ?>  
    ' метод='POST'>   9[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.([a-zA-Z]{2,4})$',  
           $_REQUEST[' электронная почта'])) {  
    echo 'Действительно';
    } else {  
    echo 'Недействительно';
    }  
    }  
    ?>

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

    Справочник по синтаксису

    Это краткий справочник по базовому синтаксису. Мы уже видели многое из этого ранее, но здесь есть несколько новых вещей, которые могут оказаться полезными. 90-9] нет вхождений чисел 0-9 включительно
    ? ноль или один предшествующий символ(ы)
    * ноль или более предшествующих символов
    + один или несколько предшествующих символов
    {2} 2 предшествующих символа(ов)
    {2,} 2 или более предшествующих символа(ов)
    {2,4} 2 — 4 предшествующих символа(ов)
    . любой символ
    (a|b) a ИЛИ b
    s пустое пространство (известное как пробел)

  • Поделиться этой статьей

    Джеймс Ашер-Смит

    Джеймс — студент и внештатный веб-разработчик, специализирующийся на веб-сайтах, управляемых базами данных. Он также разрабатывает мощный сценарий каталога ссылок SideLinks.

    Вверх Далее

    Альтернатива регулярным выражениям: apg-expLowell D. Thomas

    Использование регулярных выражений для проверки длины строкиM. Дэвид Грин

    RegExper: объяснение регулярных выраженийКрейг Баклер

    Регулярные выражения. Должен полюбить их. Сара Хок

    Лучшее из Fluent 2012: /Reg(exp){2}lained/: Демистификация регулярных выражений — Regex Tutorial

    В этой статье вы узнаете, как сопоставлять числа и диапазоны чисел в регулярных выражениях. Диапазон номеров регулярных выражений включает соответствие от 0 до 9, от 1 до 9, от 0 до 10, от 1 до 10, от 1 до 12, от 1 до 16 и от 1 до 31, от 1 до 32, от 0 до 9.9, 0-100, 1-100, 1-127, 0-255, 0-999, 1-999, 1-1000 и 1-9999.

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

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

    Только для например, скажем, если вы хотите сопоставить любое число от 1 до 100, и вы напишите для него регулярное выражение как

    / [1-100] / 

    и надеюсь, что он будет соответствовать всем числам от 1 до 100, тогда ваше регулярное выражение будет работать, но даст неожиданные результаты. Это регулярное выражение будет соответствовать только двум цифры, да, только две цифры и НЕТ никаких сомнений. Можете ли вы понять из каких двух чисел? Если вы посмотрите на него, вы поймете, что это будет соответствовать только 0 и 1 и больше ничему. Точно так же диапазон [0-255] будет соответствовать 0,1,2,5. Во-первых, это диапазон 0-2, который находится в класс символов будет соответствовать 0,1,2 и 5, написанному два раза, будет соответствовать 5. Теперь давайте начнем с логики и философии сопоставления чисел и чисел. диапазоны в регулярных выражениях.

    Числа в регулярном выражении

    Самый простой совпадение чисел является буквальным соответствием. Если вы хотите сопоставить 3, просто напишите / 3 / или если вы хотите соответствовать 99, напишите /99/ и это будет успешным соответствовать. Аналогично для соответствия 2019 напишите /2019/ и это число буквальное совпадение. Но вы можете видеть, что это не гибко, так как это очень сложно узнать о конкретном числе в тексте, или число может встречаться в диапазоны.

    \д для одно- или многозначные номера

    число от 0 до 9мы используем \d в регулярном выражении. Он будет соответствовать любой одиночной цифре число от 0 до 9. 

    \d означает  [0-9]   или соответствует любому числу от 0 до 9. Вместо запись 0123456789 сокращенная версия [0-9], где [] используется для диапазон символов.

    [1-9][0-9] будет соответствовать двузначному числу от 10 до 99.

    Но если вы хотите сопоставить число любого количества цифр, например 2,55,235, 9875 a квантификатор добавляется в конце

    / \d+ / где + — квантификатор, который соответствует между одним и как можно больше раз. 9символы $ используются для начала или конца нить.

    Регулярное выражение для диапазона 0–9

    Для соответствия числовой диапазон от 0 до 9, то есть любое число от 0 до 9, регулярное выражение простое

    /[0-9]/

    Регулярное выражение от 1 до 9

    число от 1 до 9, регулярное выражение простое

    /[1-9]/ 

    Точно так же вы можно использовать /[3-7]/ для соответствия любому числу от 3 до 7 или /[2-5]/ для соответствия 2,3,4,5

    Регулярное выражение от 0 до 10

    Кому совпадение чисел от 0 до 10 — это начало небольшого усложнения, а не так много, но используется другой подход. Эта серия сломана к двум компонентам.

    1. от 0 до 9

    2. 10

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

    /\b([0-9]|10)\b /

    Объяснение:

    Для двоих компоненты пишем две штуки

    1. от 0 до 9    [0-9] &

     2. 10    10 и мы используем группу и используем | оператор, который называется оператором ИЛИ, что означает либо 0-9 или 10 здесь.

    Регулярное выражение от 1 до 10

    Аналогично для от 1 до 10 регулярное выражение будет 

    \b([1-9]|10)\b

    Регулярное выражение от 1 до 12

    \b([1-9]|1[0-2])\b

    Диапазон от 1 до 12 делится на два диапазона

    1. от 1 до 9 —>  [1-9]

    2. от 10 до 12 —> 1[0-2]

    Регулярное выражение для 1 до 16

    \b([1-9]|1[0-6])\b

    В этом случае диапазон делится на

    1. от 1 до 9

    2. от 10 до 16

    Regex для диапазона номеров 1–31

    \b([1–9]|[12][0–9]|3[01])\b

    Здесь диапазон от 1 до 31 делится на три компонента по требованию

    1. от 1 до 9 —> [0-9]

    2. от 10 до 29 —> [12][0-9]

    3. от 30 до 31 —> 3[01]

    Регулярное выражение for 1–32

    Регулярное выражение для от 1 до 32 

    \b([1-9]|[12][0-9]|3[0-2])\b

    1. от 1 до 9 —> [0-9]

    2. от 10 до 29 —> [12][0-9]

    3. от 30 до 32 —> 3[02]

    Регулярное выражение для 0-99

    Обычный выражение для диапазона от 0 до 99:

    \b([0-9]|[1-9][0-9])\b

    Этот диапазон разделен на два диапазона

    1. от 0 до 9 —> [0-9]

    2. от 10 до 99 —> [1-9][0-9]

    Регулярное выражение для 0-100

    Регулярное выражение для диапазон от 0 до 100:

    \b([0-9]|[1-9][0-9]|100)\b

    Здесь диапазон делится на три компонента, а дополнительный компонент тогда предыдущий диапазон равен 100.

    Regex для 1-100

    Обычный выражение для этого диапазона

    \b([1-9]|[1-9][0-9]|100)\b

    1. Первый компонент от 1 до 9

    2. Второй часть от 10 до 99

    3. Третья часть 100

    Регулярное выражение для 1-127

    Регулярное выражение для диапазон от 1 до 127:

    \b([1-9]|[1-9][0-9]|1[01][0-9]|12[0-7])\b

    Числовой диапазон от 1 до 127 делится на

    1.