Автор оригинала: David Wong.
В PHP есть две библиотеки регулярных выражений . Один из них предоставляется библиотекой регулярных выражений, совместимых с PCRE (Perl). Библиотека PCRE использует те же правила синтаксиса, что и Perl, для реализации сопоставления регулярных выражений с шаблоном, и ее использование-функция “preg”, названная в честь префикса. Другое обеспечивается библиотекой расширений POSIX (portable operating system interface). Регулярное выражение расширения POSIX определяется POSIX 1003.2 и обычно используется как функция “ereg”, названная в честь префикса. Функции двух библиотек схожи, но эффективность выполнения немного отличается. Вообще говоря, для достижения той же функции эффективность использования библиотеки PCRE несколько выше. Ниже подробно описано его использование. 6.3.1 соответствие регулярным выражениям 1.preg_match() Прототип функции: int preg_ match (строка $pattern, строка $content [, массив $совпадений]) preg_ Функция match() выполняет поиск в строке $content содержимого, соответствующего регулярному выражению, заданному $pattern. Если указано $совпадения, в него помещаются результаты сопоставления.$ Совпадения [0] будут содержать текст, соответствующий всему шаблону, $совпадения [1] будут содержать первое захваченное содержимое, соответствующее единице шаблона в скобках, и так далее. Эта функция выполняет только одно совпадение и, наконец, возвращает количество совпадающих результатов, равное 0 или 1. Код 6.1 предоставляет preg_ Пример кода функции match (). Код 6.1 соответствие даты и времени
Это простой пример динамического сопоставления текстовых строк. Предполагая, что текущее системное время “13:25, 17 августа 2006 года”, будет выведено следующее содержимое. Время совпадения: 2006-08-17 01:25 вечера Текущая дата: 17 августа 2006 года Текущее время: 01:25 вечера 2. Эрег () и эреги () Ereg () – это функция сопоставления регулярных выражений в библиотеке расширений POSIX. Eregi () – это версия функции ereg() без учета регистра. Два и preg_ Функция совпадения аналогична, но функция возвращает логическое значение, указывающее, является ли совпадение успешным или нет. Следует отметить, что первый параметр функции библиотеки расширений POSIX принимает строку регулярного выражения, то есть ей не нужно использовать разделитель. Например, код 6.2-это метод проверки безопасности имени файла. Код 6.2 проверка безопасности имени файла
В общем случае, совместимая с Perl функция сопоставления регулярных выражений PERG используется для сопоставления() будет быстрее, чем при использовании ereg() или eregi(). Если вы просто ищете, содержит ли строка подстроку, рекомендуется использовать функцию strstr() или strpos (). 3.Прототип функции preg_grep () : массив preg_ grep (строка $pattern, массив $input) preg_ Функция grep() возвращает массив, содержащий ячейки в массиве $input, соответствующие заданному шаблону $pattern. Для каждого элемента входного массива $input функция preg_ Grep () также совпадает только один раз. Пример, приведенный в коде 6.3, просто иллюстрирует preg_ Использование функции grep (). Код 6.3 сопоставление запросов к массиву
6.3.2 глобальное сопоставление регулярных выражений 1.preg_match_all() И preg_ Функция match() аналогична. Если используется третий параметр, все возможные совпадения помещаются в. Эта функция возвращает количество совпадений всего шаблона (возможно, 0). Если есть ошибка, она возвращает значение false. Ниже приведен пример преобразования адреса URL-ссылки в тексте в HTML-код. Код 6.4-это preg_ match_ Примеры использования функции all (). Код 6.4 превращает адрес ссылки в тексте в HTML
2. Многострочное сопоставление Сложно выполнить сложную операцию сопоставления только с помощью обычной табличной функции в POSIX. Например, поиск соответствия выполняется по всему файлу, особенно по нескольким строкам текста. Один из способов сделать это с помощью ereg () – обрабатывать его в ветвях. Пример в коде 6.5 показывает, как ereg () может назначить массиву параметры INI – файла. Код 6.5 многострочное сопоставление содержимого файла
Советы Это просто для удобства. Лучший способ проанализировать a *. Файл INI предназначен для использования функции parse_ ini_ file()。 Эта функция непосредственно анализирует *. Файл INI в большой массив. 6.3.3 замена регулярных выражений 1.ereg_ Replace() и eregi_ replace () | Прототип функции: строка ereg_ replace (строка $шаблон, строка $замена, строка $строка) строка eregi_replace (строка $шаблон, строка $замена, строка $строка) ereg_ Replace() ищет строку шаблона $шаблон в $строке и заменяет соответствующий результат на $замена. Когда единица шаблона (или вложенный шаблон) включена в $pattern, позиции в $replacement, такие как “\ 1” или “$1”, будут заменены содержимым, соответствующим этим вложенным шаблонам, в свою очередь. И “\ 0” или “$0” относится к содержимому всей соответствующей строки. Следует отметить, что обратная косая черта используется в качестве escape-символа в двойных кавычках, поэтому необходимо использовать форму “\ \ 0” и “\ \ 1”. eregi_ Replace() и ereg_ Функция replace () одинакова, но первая игнорирует регистр. Код 6.6 является примером применения этой функции. Этот код демонстрирует, как просто очистить исходный код. Код 6.6 очистка исходного кода
2.preg_replace () |/Прототип функции: смешанная замена preg_ (смешанный шаблон$, смешанная замена$, смешанная тема $ [, int $limit]) preg_ Замена лучше, чем ereg_ Функция замены более мощная. Первые три параметра могут использовать массив; Четвертый параметр $limit может задавать количество подстановок. Значение по умолчанию-все замены. Код 6.7 является примером применения замены массива. Код 6.7 замена массива
Выходные результаты следующие. Имя: Томас Чинг”, Электронная почта: [email protected] Адрес: № 5, Уилсон-Стрит, Нью-Йорк, США В прег_ Модификатор шаблона “e” можно использовать в регулярном выражении replace. Его функция состоит в том, чтобы использовать результат сопоставления в качестве выражения, и его можно пересчитать. Например:
Советы preg_ Функция замены использует синтаксис регулярных выражений, совместимый с Perl, который обычно лучше, чем ereg_ Замена является более быстрой альтернативой. Если вы просто заменяете строки, вы можете использовать функцию str_ Replace. 6.3.4 разделение регулярных выражений 1. Разделение () и разделение () Прототип функции: разделение массива (строка $шаблон, строка $строка [, int $предел]) Эта функция возвращает массив строк. Каждая ячейка представляет собой подстроку из строки $, разделенную шаблоном регулярного выражения $в качестве границы. Если установлен $limit, возвращаемый массив содержит не более $limit ячеек. Последний блок содержит всю остальную часть строки$. Split-это версия split с игнорируемым размером. Код 6.8 является часто используемым примером дат. Код 6.8 разделение дат
2.preg_split() Эта функция выполняет ту же функцию, что и функция разделения. Код 6.9 является примером определения количества слов в статье. Код 6.9 найдите количество слов в статье
Советы preg_ Функция split() использует синтаксис регулярных выражений, совместимый с Perl, и обычно является более быстрой альтернативой функции split(). Используя регулярные выражения для разделения строк, вы можете использовать более широкий диапазон разделительных символов. Например, приведенный выше анализ формата данных и обработки текстов. Если для сегментации используется только определенный символ, рекомендуется использовать функцию expand (), которая не вызывает механизм регулярных выражений, поэтому она является самой быстрой.
Оригинал: “https://developpaper.com/summary-of-common-functions-of-php-regular-expression/”