Регулярное выражение - это особый шаблон, который можно использовать для поиска, поиска и замены любой конкретной строки в текстовых данных. Это мощная функция любого языка программирования. Он в основном используется для выполнения различных типов проверки форм, таких как проверка электронной почты, проверка формата телефона, проверка полей имени пользователя и пароля в форме входа и т. Д. Любое конкретное содержимое текста может быть найдено и заменено с помощью регулярного выражения. шаблон. Его также называют регулярным выражением или RegExp. Для определения шаблона регулярного выражения используются разные типы символов.
В PHP существует множество встроенных функций для регулярного выражения. Функция preg_match () - одна из них. Эта функция используется для сопоставления определенного шаблона в строковых данных. В этом руководстве объясняется, как функцию preg_match () можно использовать в PHP для выполнения различных задач.
Синтаксис:
Int илиложный preg_match (нить$ шаблон,нить$ тема [, множество &$ совпадения знак равно нулевой [,int$ flags знак равно 0 [,int$ смещение знак равно 0]]])Эта функция может принимать пять аргументов. Первый аргумент, $ шаблон , является обязательным и определяет шаблон для сопоставления. Второй аргумент, $ тема , является обязательным и содержит строковые данные, в которых будет применяться шаблон. Третий аргумент, $ совпадения , является необязательным и возвращает массив на основе совпадения. Четвертый аргумент, $ flags , является необязательным и содержит различные типы значений флагов в зависимости от совпадения. Пятый аргумент, $ смещение , является необязательным и может использоваться для определения начальной позиции поиска.
Пример 1. Сопоставьте шаблон с учетом регистра и без учета регистра
В следующем примере показано использование функции preg_match () для сопоставления строки с учетом регистра и без учета регистра. Создайте файл PHP со следующим скриптом.
Здесь три шаблона используются для применения в трех функциях preg_match (). Первый узор, '/Нравиться/', используется для сопоставления строки с учетом регистра. Второй узор, '/нравиться/' , используется для сопоставления строки с учетом регистра. Третий узор, 'Как я' , используется для сопоставления строки без учета регистра. search_pattern () Функция определена в сценарии для использования функции preg_match () для сопоставления, и она печатает сообщение на основе возвращенного значения этой функции.
// Определяем текст
$ text знак равно «Мне нравится PHP. Мне тоже нравится JavaScript ».;
// Определяем три типа паттернов
$ pattern1 знак равно '/Нравиться/';
$ pattern2 знак равно '/нравиться/';
$ pattern3 знак равно '/Как я';
// Определяем функцию для поиска паттерна в тексте
функцияsearch_pattern($ шаблон, $ строка)
{
если( preg_match ($ шаблон, $ строка))
выбросил 'Результат поиска: Найдено совпадение по образцу -$ шаблон
';
еще
выбросил 'Результат поиска: Соответствие шаблону не найдено -$ шаблон
';
}
// Распечатываем исходный текст
выбросил 'Исходный текст: $ text
';
// Трижды вызываем функцию для трех паттернов
search_pattern($ pattern1, $ text);
search_pattern($ pattern2, $ text);
search_pattern($ pattern3, $ text);
?>
Выход :
Следующий вывод появится после запуска сценария с сервера. В первой строке показан текст, в котором был произведен поиск шаблонов. Вторая строка показывает результат первого шаблона. Третья строка показывает результат второго шаблона. Четвертая строка показывает результат третьего шаблона.
Пример 2: Проверить URL
В следующем примере показан способ проверки URL-адреса с помощью функции preg_match (). Создайте файл PHP со следующим скриптом.
Значение URL присваивается в переменной $ url для тестирования. Строка ‘@ ^ (?: Https: //)? ([^ /] +) @I’ используется в качестве шаблона в функции preg_match () для проверки правильности URL-адреса. Если он действителен, то будут напечатаны имя хоста и имя домена, в противном случае будет напечатано сообщение об ошибке.
// Определяем URL
$ url знак равно 'https://www.linuxhint.com';
// Определяем шаблон для проверки URL
$ шаблон знак равно'@ ^ (?: https: //)? ([^ /] +) @i';
// Проверяем, действителен ли URL
если( preg_match ($ шаблон, $ url, $ match1))
{
// Распечатываем сообщение об успешном завершении
выбросил 'URL-адрес действителен.
';
// Распечатываем массив, содержащий совпадающие значения
выбросил 'Значения массива:';
print_r ($ match1);
// Получить и распечатать значение хоста
$ host знак равно $ match1[1];
выбросил '
Имя хоста:$ host';
// Ищем доменное имя по значению хоста
preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $ host, $ match2);
выбросил '
Доменное имя:{$ match2 [0]}';
}
еще
{
// Распечатать сообщение об ошибке
выбросил 'Неверный URL.';
}
?>
Выход :
Следующий вывод появится после запуска сценария с сервера. Указанный в сценарии URL-адрес действителен. Итак, выходные данные показывают значения совпадений $, имя хоста URL-адреса и доменное имя URL-адреса.
Пример 3: шаблон поиска со значениями флага и смещения
В следующем примере показано использование значений флага и смещения в функции preg_match (). Создайте файл PHP со следующим скриптом.
В скрипте используются три шаблона для трех типов сопоставления. В первой функции preg_match () в качестве шаблона используется «/ (bangla) (desh) /», а в качестве значения флага используется PREG_OFFSET_CAPTURE. Ценности $ совпадения переменная будет печататься на основе вывода первой функции preg_match (). Во второй функции preg_match () ‘/ (bangla) (glad) * (desh) / i’ используется как шаблон, а значение флага - PREG_UNMATCHED_AS_NULL. Если какая-либо часть шаблона не совпадает, в массиве будет сохранено значение NULL. Ценности $ совпадения переменная будет печататься на основе вывода второй функции preg_match (). В третьей функции preg_match () «/ glad /» используется в качестве шаблона, используется значение флага, PREG_OFFSET_CAPTURE, а 3 используется в качестве значения смещения. Ценности $ совпадения переменная будет печататься на основе вывода третьей функции preg_match ().
// Определяем текстовое значение
$ text знак равно 'Бангладеш';
// Определяем три типа паттернов
$ pattern1 знак равно '/ (бангла) (деш) / я';
$ pattern2 знак равно '/ (бангла) (рад) * (деш) / я';
$ pattern3 знак равно '/радостный/';
// Использование флага PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ совпадения,PREG_OFFSET_CAPTURE);
выбросил '
';
print_r ($matches);
echo '
';
// Использование флага PREG_UNMATCHED_AS_NULL
preg_match ($ pattern2, $ text, $ совпадения,PREG_UNMATCHED_AS_NULL);
выбросил '
';
print_r ($matches);
echo '
';
// Использование флага PREG_OFFSET_CAPTURE и значения смещения
preg_match ($ pattern3, $ text, $ совпадения,PREG_OFFSET_CAPTURE, 3);
выбросил '
';
print_r ($matches);
echo '';
?>
Выход :
Следующий вывод появится после запуска сценария с сервера.
Заключение
Использование функции preg_match () было объяснено в этом руководстве на нескольких примерах. Здесь также показано использование различных аргументов этой функции. Читатели смогут правильно использовать эту функцию в своих скриптах после прочтения этого руководства.