Регулярные выражения - это не что иное, как последовательность или шаблон самих символов. Они обеспечивают основу для соответствия шаблону.
Содержание:
Используя регулярное выражение, вы можете искать определенную строку внутри другой строки, вы можете заменить одну строку другой строкой, и вы можете разбить строку на многие фрагменты.
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() | Ответить символы регулярного выражения |
С уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Связанные статьи
Предыдущие статьи
- Сеансы PHP - Запуск, уничтожение, сессии без файлов cookie - 12/04/2018 19:20
- PHP-файлы cookie - Настройка, доступ и удаление cookie - 12/04/2018 19:19
- Файлы PHP и ввод-вывод - открытие, чтение, запись и закрытие файла - 12/04/2018 19:18
- Методы PHP GET и POST, переменная $_REQUEST - 12/04/2018 19:17
- Загрузка файлов PHP - Создание формы и сценария загрузки - 12/04/2018 19:16
- Объектно-ориентированное программирование в PHP - 12/04/2018 19:15
- Включение файла в PHP - Функция include и require - 12/04/2018 19:14
- Предопределенные переменные PHP - Суперглобальные массивы и переменные сервера - 12/04/2018 19:13
- Функции с параметрами, динамические вызовы, создание функции в PHP - 12/04/2018 19:12
- Типы операторов PHP - категории, присваивания, логические операторы - 12/04/2018 19:11
- Типы циклов PHP for, foreach, continue, break, do-while - 12/04/2018 19:10
- Принятие решений PHP - ElseIf Switch - 12/04/2018 19:09
- Типы констант PHP - Различия между константами и переменными - 12/04/2018 19:08
- Массивы PHP: Многомерные, ассоциативные и числовые массивы - 12/04/2018 19:07
- Типы переменных, область и имена переменных в PHP - 12/04/2018 19:06
- Строки в PHP, strpos, strlen, конкатенация строк - 12/04/2018 19:05
- Дата и время, получение, преобразование времени в PHP - 12/04/2018 19:03
- Обзор синтаксиса, канонические теги, комментирование PHP-кода - 12/04/2018 19:02
- Введение в PHP. Общее использование, характеристики PHP - 12/04/2018 19:01