Регулярное выражение - это особый шаблон, который можно использовать для поиска, поиска и замены любой конкретной строки в текстовых данных. Это мощная функция любого языка программирования. Он в основном используется для выполнения различных типов проверки форм, таких как проверка электронной почты, проверка формата телефона, проверка полей имени пользователя и пароля в форме входа и т. Д. Любое конкретное содержимое текста можно найти и заменить с помощью шаблона регулярного выражения. Его также называют регулярным выражением или RegExp. Для определения шаблона регулярного выражения используются разные типы символов.
В PHP существует множество встроенных функций для регулярного выражения. Функция preg_match () - одна из них. Эта функция используется для сопоставления определенного шаблона в строковых данных. В этом руководстве объясняется, как функцию preg_match () можно использовать в PHP для выполнения различных задач.
Синтаксис:
Int или false preg_match (строка $ pattern, строка $ subject [, array & $ matches = null [, int $ flags = 0 [, int $ offset = 0]]])Эта функция может принимать пять аргументов. Первый аргумент, $ шаблон, является обязательным, который определяет шаблон для сопоставления. Второй аргумент, $ тема, является обязательным и содержит строковые данные, в которых будет применяться шаблон. Третий аргумент, $ совпадения, не является обязательным и возвращает массив на основе совпадения. Четвертый аргумент, $ flags, не является обязательным, он содержит различные типы значений флагов в зависимости от совпадения. Пятый аргумент, $ смещение, не является обязательным и может использоваться для определения начальной позиции поиска.
Пример 1. Сопоставьте шаблон с учетом регистра и без учета регистра
В следующем примере показано использование функции preg_match () для сопоставления строки с учетом регистра и без учета регистра. Создайте файл PHP со следующим скриптом.
Здесь используются три шаблона для применения в трех функциях preg_match (). Первый паттерн, '/Нравиться/', используется для сопоставления строки с учетом регистра. Второй паттерн, '/нравиться/', используется для сопоставления строки с учетом регистра. Третий паттерн, 'Как я', используется для сопоставления строки без учета регистра. search_pattern () функция определена в сценарии для использования функции preg_match () для сопоставления, и она печатает сообщение на основе возвращенного значения этой функции.
// Определяем текст$ text = "Мне нравится PHP. Мне тоже нравится JavaScript.";
// Определяем три типа паттернов
$ pattern1 = '/ Нравится /';
$ pattern2 = '/ нравится /';
$ pattern3 = '/ Нравится / я';
// Определяем функцию для поиска паттерна в тексте
функция search_pattern ($ шаблон, $ строка)
если (preg_match ($ шаблон, $ строка))
echo "Результат поиска: Найдено совпадение для шаблона - $ pattern
";
еще
echo "Результат поиска: Не найдено совпадение для шаблона - $ pattern
";
// Распечатываем исходный текст
echo "Исходный текст: $ text
";
// Трижды вызываем функцию для трех паттернов
search_pattern ($ шаблон1, $ текст);
search_pattern ($ шаблон2, $ текст);
search_pattern ($ шаблон3, $ текст);
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера. Первая строка показывает текст, в котором были найдены шаблоны. Вторая строка показывает результат первого шаблона. Третья строка показывает результат второго шаблона. Четвертая строка показывает результат третьего шаблона.
Пример 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, $ соответствует1))
// Распечатываем сообщение об успешном завершении
echo "URL действительный.
";
// Распечатываем массив, содержащий совпадающие значения
echo "Значения массива:";
print_r ($ соответствует1);
// Получить и распечатать значение хоста
$ host = $ match1 [1];
эхо "
Имя хоста: $ host ";
// Ищем доменное имя по значению хоста
preg_match ('/ [^.] + \.[^.] + $ / ', $ host, $ соответствует2);
эхо "
Имя домена: $ match2 [0] ";
еще
// Распечатать сообщение об ошибке
echo "Неверный 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 = '/ (бангла) (desh) / я';
$ pattern2 = '/ (бангла) (рад) * (desh) / я';
$ pattern3 = '/ рад /';
// Использование флага PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ соответствует, PREG_OFFSET_CAPTURE);
эхо "
";
print_r ($ соответствует);
эхо "
";
// Использование флага PREG_UNMATCHED_AS_NULL
preg_match ($ шаблон2, $ текст, $ совпадений, PREG_UNMATCHED_AS_NULL);
эхо "
";
print_r ($ соответствует);
эхо "
";
// Использование флага PREG_OFFSET_CAPTURE и значения смещения
preg_match ($ pattern3, $ text, $ соответствует, PREG_OFFSET_CAPTURE, 3);
эхо "
";";
print_r ($ соответствует);
эхо "
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера.
Заключение
Использование функции preg_match () было объяснено в этом руководстве на нескольких примерах. Здесь также показано использование различных аргументов этой функции. Читатели смогут правильно использовать эту функцию в своих скриптах после прочтения этого руководства.