Содержание

ТОП регулярных выражений на PHP

ТОП регулярных выражений на PHP

  • Проверка шаблона телефона
  • Совпадение строки с адресом видеоролика на YouTube
  • Проверка почтового индекса (Zip Code)
  • Проверка с совпадением шаблона времени
  • Проверка даты в формате yyyy-mm-dd hh:mm:ss
  • Проверяем является ли переменная числом
  • Проверка адреса e-mail
  • Проверка mail адреса на корректность
  • Проверка номера кредитной карты
  • Проверка имени файла
  • Поиск CSS-атрибутов
  • Получение цены из строки
  • Соответствие имени файла определенному типу
  • Разделитель в больших числах повторяющиеся в числе через каждые 3 символа
  • Проверка строки на буквы, цифры и _
  • Проверка повторяющихся символов
  • Найти в тексте адрес E-mail
  • Удалить все ссылки с описания
  • Пример подсветки слова в тексте
  • Пример получения изображений из HTML методом regexp
  • Удаление повторяющихся слов (без учета регистра)
  • Удаление повторяющихся точек
  • Пример проверки сложности пароля
  • Код цвета в шестнадцатеричном формате
  • Удаляем спецсимволы
  • Удаляем всё, что между
  • Множественные пробелы заменяем на одинарные
  • Удаляем лишние переводы строк и переносы
  • Найти содержимое определённого тега и вставить его в другие теги
  • Конвертор HTML в текст
  • Как разобрать email и сделать ссылку

В статье предоставлена подборка примеров с регулярными выражениями php regexp на все случаи создания сайта как для простых лендинг-страниц так и сложных интернет-магазонов.

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

Проверка шаблона телефона


Проверка номера телефона американского формата

Проверка российских телефонных номеров


Совпадение строки с адресом видеоролика на YouTube

Проверка почтового индекса (Zip Code)


Проверка с совпадением шаблона времени


Проверка даты в формате yyyy-mm-dd hh:mm:ss


Проверяем является ли переменная числом


Проверка адреса e-mail


Проверка mail адреса на корректность


Проверка номера кредитной карты


Проверка имени файла


Поиск CSS-атрибутов

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


Получение цены из строки


Соответствие имени файла определенному типу

Получаем расширение загружаемого файла и проверяем присутствует ли расширение файла в списке разрешенных.


Разделитель в больших числах повторяющиеся в числе через каждые 3 символа


Проверка строки на буквы, цифры и «_»


Проверка повторяющихся символов

Проверка на идущие подряд символы (не менее 3-х символов подряд)


Найти в тексте адрес E-mail


Удалить все ссылки с описания


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

Код полезен для создания подсветки вывода результатов поиска.


Пример получения изображений из HTML методом regexp


Удаление повторяющихся точек


Пример проверки сложности пароля


Код цвета в шестнадцатеричном формате


Удаляем спецсимволы


Удаляем всё, что между


Множественные пробелы заменяем на одинарные


Удаляем лишние переводы строк и переносы


Найти содержимое определённого тега и вставить его в другие теги


Конвертор HTML в текст


Как разобрать email и сделать ссылку


Помогла ли вам статья?

348 раз уже помогла

Комментарии: (0)

Шпаргалка по регулярным выражениям PHP » Блог.

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’ не включается в результат.

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

PHP: Функции PCRE — Руководство

Изменение языка: английскийбразильский португальскийкитайский (упрощенный)французскийнемецкийяпонскийрусскийиспанскийтурецкийДругое

Отправить запрос на вытягивание Сообщить об ошибке

  • preg_filter — Выполнить поиск и замену регулярного выражения
  • preg_grep — Возвращает записи массива, соответствующие шаблону
  • preg_last_error_msg — Возвращает сообщение об ошибке последнего выполнения регулярного выражения PCRE последнее выполнение регулярного выражения PCRE
  • preg_match_all — выполнить глобальное сопоставление с регулярным выражением
  • preg_match — выполнить сопоставление с регулярным выражением
  • preg_quote — заключить в кавычки символы регулярного выражения replace с помощью обратного вызова
  • preg_replace — выполнить поиск и замену по регулярному выражению
  • preg_split — разделить строку с помощью регулярного выражения

добавить примечание

Пользовательские заметки 3 заметки

вверх

вниз

11

steve at stevedix dot de

18 лет назад

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

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

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

Я рекомендую использовать такой инструмент, как "The Regex Coach", для отладки ваших строк регулярных выражений.

http://weitz.de/files/regex-coach.exe (установщик Windows) http://weitz.de/files/regex-coach.tgz (tar-архив Linux)

вверх

вниз

4

stronk7 в компании Moodle Dot

15 лет назад

Один комментарий о 5. 2.x и pcre.backtrack_limit:

Обратите внимание, что этот параметр отсутствовал в предыдущих выпусках PHP, и поведение (или ограничение) в этих выпусках на практике было выше, поэтому все эти функции PCRE могли " захват" более длинные строки.

С появлением настройки, по умолчанию равной 100000 (менее 100 КБ), вы не сможете сопоставлять/захватывать строки большего размера, используя, например, «нежадные» модификаторы.

Таким образом, во многих ситуациях вам нужно будет увеличить этот (очень маленький IMO) лимит.

Хуже всего то, что PHP просто не будет сопоставлять/захватывать эти строки поверх pcre.backtrack_limit и будет ли он на 100% молчать об этом (я думаю, что выдача некоторого УВЕДОМЛЕНИЯ/ПРЕДУПРЕЖДЕНИЯ, если оно поднято, может сильно помочь разработчикам).

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

Надеюсь, эта заметка поможет, чао :-)

вверх

вниз

-11

Svoop

13 лет назад

Я написал краткое введение и красочную шпаргалка по Perl-совместимым регулярным выражениям (PCRE):

http://www. bitcetera.com/en/techblog/2008/04/01/regex-in-a-nutshell/

добавить примечание

PHP Live Regex

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

/ /

Параметры регулярных выражений

Замена

Строка (строки) поиска last_name, first_name Бьорге, Филипп Кардашьян, Ким Меркьюри, Фредди

  • preg_match
  • preg_match_all
  • preg_replace
  • прег_греп
  • preg_split

Памятка

9
[абв] Один символ из: a, b или c Начало строки
$ Конец строки
Начало строки
Конец строки
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *