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

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

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

  • Регулярные выражения POSIX
  • Регулярные выражения типа PERL

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

Структура регулярного выражения POSIX не отличается от структуры типичного арифметического выражения: различные элементы (операторы) объединяются для формирования более сложных выражений.

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

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

Скобки

Скобки ([]) имеют особое значение при использовании в контексте регулярных выражений. Они используются для поиска диапазона символов.

# Значение Описание
[0-9]Он соответствует любой десятичной цифре от 0 до 9.
[AZ]Он соответствует любому символу от нижнего регистра a до нижнего регистра z.
[AZ]Он соответствует любому символу в верхнем регистре A в верхнем регистре Z.
[Az]Он соответствует любому символу от нижнего регистра a до верхнего регистра Z.

Диапазоны, показанные выше, являются общими; вы также можете использовать диапазон [0-3] для соответствия любой десятичной цифре в диапазоне от 0 до 3 или диапазону [bv], чтобы соответствовать любому строчному символу в диапазоне от b до v.

Кванторы

Частоту или положение заключенных в скобки символьных последовательностей и одиночных символов можно обозначить специальным символом. Каждый особый персонаж имеет конкретную коннотацию. +, * ,? , {int. range} и $ flags следуют за символьной последовательностью.

# Значение Описание
р +Он соответствует любой строке, содержащей хотя бы один p.
п*Он соответствует любой строке, содержащей ноль или более p.
p ?Он соответствует любой строке, содержащей ноль или более p. Это просто альтернативный способ использования p *.
р {N}Он соответствует любой строке, содержащей последовательность из N p
р {2,3}Он соответствует любой строке, содержащей последовательность из двух или трех p.
p {2,}Он соответствует любой строке, содержащей последовательность не менее двух p.
р $Он соответствует любой строке с p в конце ее.
^ рОн соответствует любой строке с p в начале ее.
Примеры

Следующие примеры дают понятия о совпадении символов.

Значение Описание
[^ a- zA- Z]Он соответствует любой строке, не содержащей ни одного символа в диапазоне от a до z и от A до Z.
p.pОн соответствует любой строке, содержащей p, за которой следует любой символ, в свою очередь, за которым следует другой p.
^. {2} $Он соответствует любой строке, содержащей ровно два символа.
< b > (.*)< / b >.Он соответствует любой строке, заключенной внутри b и / b.
p ( hp ) *Он соответствует любой строке, содержащей ap, а затем ноль или более экземпляров последовательности php.

Предопределенные диапазоны символов

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

Значение Описание
[[:alpha:]]Он соответствует любой строке, содержащей алфавитные символы aA через zZ .
[[:digit:]]Он соответствует любой строке, содержащей числовые цифры от 0 до 9.
[[:alnum:]]Он соответствует любой строке, содержащей буквенно-цифровые символы aA через zZ и от 0 до 9.
[[:space:]]Он соответствует любой строке, содержащей пробел.

PHP- функции Regexp POSIX

PHP в настоящее время предлагает семь функций для поиска строк с использованием регулярных выражений в стиле POSIX -

Значение Описание
ereg()Функция ereg() ищет строку, указанную строкой для строки, заданной шаблоном, возвращает true, если шаблон найден, и false в противном случае.
ereg_replace ()Функция ereg_replace() ищет строку, указанную в шаблоне, и заменяет шаблон заменой, если найден.
eregi()Функция eregi() выполняет поиск по всей строке, заданной шаблоном, для строки, указанной строкой. Поиск не чувствителен к регистру.
eregi_replace()Функция eregi_replace() работает точно так же, как и ereg_replace(), за исключением того, что поиск шаблона в строке не чувствителен к регистру.
Split()Функция split() будет разделять строку на различные элементы, границы каждого элемента на основе появления шаблона в строке.
spliti()Функция spliti() работает точно так же, как и sibling split(), за исключением того, что она не чувствительна к регистру.
sql_regcase()Функция sql_regcase() может рассматриваться как служебная функция, преобразующая каждый символ в строку входных параметров в выражение в квадратных скобках, содержащее два символа.

Регулярные выражения типа PERL

Регулярные выражения в стиле Perl похожи на их аналоги POSIX. Синтаксис POSIX можно использовать почти взаимозаменяемо с функциями регулярного выражения в стиле Perl. Фактически, вы можете использовать любой из кванторов, введенный в предыдущем разделе POSIX.

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

Мета-символы

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

Например, вы можете искать большие денежные суммы, используя метасимвол '\ d': / ( [\ d] +) 000 / , Здесь \ d будет искать любую строку числового символа.

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

Символ Описание
,один символ
\ sсимвол пробела (пробел, табуляция, новая строка)
\ Sне-пробельный символ
\ dцифра(0-9)
\ D- не цифра
\ wсимвол слова (az, AZ, 0-9, _)
\ W- символ без слова
[ aeiou ]соответствует одному символу в заданном наборе
[^ aeiou ]соответствует одному символу за пределами заданного набора
( foo | bar | baz )соответствует любой из указанных альтернатив

Модификаторы

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

Модификатор Описание
iДелает регистр без учета регистра
mУказывает, что если строка имеет новую строку или каретку возвращаемые символы, теперь будут выполняться операторы ^ и $ сопоставление с границей новой строки, а не граница строки
oоценивает выражение только один раз
sПозволяет использовать. для соответствия символу новой строки
xПозволяет использовать пробел в выражении для ясности
gГлобально находит все совпадения
cgПозволяет продолжить поиск даже после сбоя глобального соответствия

Поддерживаемые PHP-функции Regexp PERL

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

Значение Описание
preg_match()Функция preg_ match ( ) ищет строку для шаблона, возвращает true, если шаблон существует, и false в противном случае.
preg_match_all()Функция preg_match_ all ( ) соответствует всем вхождениям шаблона в строке.
preg_replace()Функция preg_ replace ( ) работает так же, как и ereg_replace (), за исключением того, что регулярные выражения могут использоваться в шаблонах и параметрах замены.
preg_split()Функция preg_ split ( ) работает точно так же, как split (), за исключением того, что регулярные выражения принимаются в качестве входных параметров для шаблона.
preg_grep()Функция preg_ grep ( ) выполняет поиск всех элементов input_array , возвращая все элементы, соответствующие шаблону regexp .
preg_quote()Ответить символы регулярного выражения

 С уважением, авторы сайта Компьютерапия


Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!



Предыдущие статьи


Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
Ok