php

Использование функции preg_match () в PHP

Использование функции preg_match () в PHP

Регулярное выражение - это особый шаблон, который можно использовать для поиска, поиска и замены любой конкретной строки в текстовых данных. Это мощная функция любого языка программирования. Он в основном используется для выполнения различных типов проверки форм, таких как проверка электронной почты, проверка формата телефона, проверка полей имени пользователя и пароля в форме входа и т. Д. Любое конкретное содержимое текста можно найти и заменить с помощью шаблона регулярного выражения. Его также называют регулярным выражением или 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 () было объяснено в этом руководстве на нескольких примерах. Здесь также показано использование различных аргументов этой функции. Читатели смогут правильно использовать эту функцию в своих скриптах после прочтения этого руководства.

5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...
Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...