Preg match examples in php

preg_match

Ищет в заданном тексте subject совпадения с шаблоном pattern .

Список параметров

В случае, если указан дополнительный параметр matches , он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] — часть строки, соответствующую первой подмаске, и так далее.

flags может принимать значение следующего флага: PREG_OFFSET_CAPTURE В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива matches в массив, каждый элемент которого содержит массив, содержащий в индексе с номером 0 найденную подстроку, а смещение этой подстроки в параметре subject — в индексе 1.

Обычно поиск осуществляется слева направо, с начала строки. Можно использовать дополнительный параметр offset для указания альтернативной начальной позиции для поиска (в байтах).

Замечание:

Использование параметра offset не эквивалентно замене сопоставляемой строки выражением substr($subject, $offset) при вызове функции preg_match() , поскольку шаблон pattern может содержать такие условия как ^, $ или (?<=x). Сравните:

$subject = «abcdef» ;
$pattern = ‘/^def/’ ;
preg_match ( $pattern , $subject , $matches , PREG_OFFSET_CAPTURE , 3 );
print_r ( $matches );
?>

Результат выполнения данного примера:

В то время как этот пример

$subject = «abcdef» ;
$pattern = ‘/^def/’ ;
preg_match ( $pattern , substr ( $subject , 3 ), $matches , PREG_OFFSET_CAPTURE );
print_r ( $matches );
?>

Array ( [0] => Array ( [0] => def [1] => 0 ) )

Возвращаемые значения

preg_match() возвращает 1, если параметр pattern соответствует переданному параметру subject , 0 если нет, или FALSE в случае ошибки.

Эта функция может возвращать как boolean FALSE , так и не-boolean значение, которое приводится к FALSE . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия Описание
5.3.6 Возвращает FALSE если offset больше, чем длина subject .
5.2.2 Именованные подмаски теперь позволяют синтаксис (?) и (?’name’), также как и (?P). Предыдущие версии позволяли только (?P).

Примеры

Пример #1 Поиск подстроки «php» в тексте

// Символ «i» после закрывающего ограничителя шаблона означает
// регистронезависимый поиск.
if ( preg_match ( «/php/i» , «PHP is the web scripting language of choice.» )) echo «Вхождение найдено.» ;
> else echo «Вхождение не найдено.» ;
>
?>

Пример #2 Поиск слова «web» в тексте

/* Специальная последовательность \b в шаблоне означает границу слова,
* следовательно, только изолированное вхождение слова ‘web’ будет
соответствовать маске, в отличие от «webbing» или «cobweb» */
if ( preg_match ( «/\bweb\b/i» , «PHP is the web scripting language of choice.» )) echo «Вхождение найдено.» ;
> else echo «Вхождение не найдено.» ;
>

if ( preg_match ( «/\bweb\b/i» , «PHP is the website scripting language of choice.» )) echo «Вхождение найдено.» ;
> else echo «Вхождение не найдено.» ;
>
?>

Пример #3 Извлечение доменного имени из URL

Читайте также:  Php year to string

// Извлекаем имя хоста из URL
preg_match ( ‘@^(?:http://)?([^/]+)@i’ ,
«http://www.php.net/index.html» , $matches );
$host = $matches [ 1 ];

// извлекаем две последние части имени хоста
preg_match ( ‘/[^.]+\.[^.]+$/’ , $host , $matches );
echo «доменное имя: < $matches [ 0 ]>\n» ;
?>

Результат выполнения данного примера:

Пример #4 Использование именованных подмасок

/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях,
* однако, вышеуказанная форма рекомендуется для обратной совместимости */
// preg_match(‘/(?\w+): (?\d+)/’, $str, $matches);

Результат выполнения данного примера:

Array ( [0] => foobar: 2008 [name] => foobar [1] => foobar [digit] => 2008 [2] => 2008 )

Примечания

Не используйте функцию preg_match() , если необходимо проверить наличие подстроки в заданной строке. Используйте для этого strpos() либо strstr() , поскольку они выполнят эту задачу гораздо быстрее.

Смотрите также

  • «Регулярные выражения PCRE»
  • preg_quote() — Экранирует символы в регулярных выражениях
  • preg_match_all() — Выполняет глобальный поиск шаблона в строке
  • preg_replace() — Выполняет поиск и замену по регулярному выражению
  • preg_split() — Разбивает строку по регулярному выражению
  • preg_last_error() — Возвращает код ошибки выполнения последнего регулярного выражения PCRE

Источник

preg_match in PHP

preg_match in PHP

The preg_match() function of PHP Programming Language searches the string for the pattern and then the function returns TRUE only if the pattern existed or else the preg_match() function will return FALSE. Preg_match() function basically works using some of the parameters which are very much useful and helpful in searching the string pattern inside of the input string data/string pattern. The first parameter is to store the string patterns to search. The second parameter is to store the input string. It is the string data where we have to search the required string patterns etc., Then 3 rd parameter “matches” will find the matching string content and shows in the output only if the print is included after the preg_match() function.

Web development, programming languages, Software testing & others

Int preg_match($pattern, $input, $matches, $flags, $offset)

Explanation:

  • The preg_match() function of PHP language usually accepts only 5 parameters as mentioned above in the syntax column which are inside of the preg_match() function.
  • The list of 5 parameters in the preg_match() function are: pattern, input, matches, flags and offset.
  • Each and every parameter is very much useful in performing the searching the string pattern in the big string or in the doc which is fully equipped with the alphanumeric string data.

How does preg_match work in PHP?

Preg_match() function in php programming language work is based on searching the string pattern/patterns in the big list of string sentences or other and the preg_match() will return the TRUE value only if the string pattern is found or else the preg_match() function will return the FALSE value. PHP’s Preg_match() functions usually works is based on the five parameters included inside of the preg_match () function.

Читайте также:  Opacity fade out css

Given below are the parameters:

1. Pattern Parameter: This is the PHP’s preg_match()’s parameter which is used to hold the pattern to search the string as a string. Pattern is also considered as the variable and placed with the $ symbol inside of the function.

2. Input Parameter: Input parameter which is inside of the preg_match() function holds the string input/ string input value.

3. Matches Parameter: Matches Parameter which is inside of the preg_match() will provide the search results only if the matches exist. Matches means the same string is present or not. The $matches[0] will actually contain the full text which the full matched string pattern. $matches[1] is going to contain the string text which matches the first parenthesized captured sub-pattern etc.. Mostly the string patterns will be found at $matches[0][0], $matches[1][0], $matches[2][0], $matches[3][0] etc.. At $matches[0][1], $matches[1][1], $matches[2][1] and $matches[3][1] you will find the NULL which means 0 as the string pattern value because it didn’t stored anything in the matches array.

4. Flags Parameter: Flags parameter can contain some other flags which are very much helpful in handling the string pattern searching.

  • PREG_OFFSET_CAPTURE FLAG: Now this flag of the preg_match() function is passed then for each and every match string offset/offsets appended will be returned.
  • PREG_UNMATCHED_AS_NULL FLAG: This flag is helpful to report as NULL when the flag is passed then the sub-patterns will be reported as NULL because the sub-patterns are not at all matched.

5. Offset Parameter: The offset parameter of the preg_match() function is very much helpful in searching from the very beginning of the string which is sent as an input. This offset parameter is optional and doesn’t need at all times. You can use it based on the requirement. It is actually used in order to start the string search by specifying the place from where the search has to start.

6. Return value from the preg_match(): The preg_match() function of PHP is always going to return TRUE only if the string pattern existed otherwise the preg_match() function will return as FALSE.

Examples of preg_match in PHP

Given below are the examples:

Example #1

Here preg_match() is illustrated using the PREG_OFFSET_CAPTURE flag. “$pavan1” is created and stored a string value “PavanKumarSake” and assigned to “$pavan1”. Then preg_match() declared with parameters.

‘/(Pavan)(Kumar)(Sake)/’ is the pattern parameter holds pattern which is to search in the input string/string value. Then “$pavan1” variable is placed as an input variable which usually contains the string element where you have to search whether string variable’s value is available inside the input or not. Then “$matches1” variable is placed next to $pavan1 variable after the comma. This is helpful to check at what position the patterns are available inside the input string ”PavanKumarSake”. In the above preg_match() working explanation, we said that what $matches[0] and $matches[1] will return. Likewise, in the below example $matches[1] will provide the result which is/are fully matched with the pattern/patterns. So output of array[0] as “PavanKumarSake” because it contains the full string/text. Then array[1][0] will be “Pavan” then array[2][0] is “Kumar” and array[3][0] is “Sake” based on example1’s output. Then the “print_r($matches1)” is to print what matches available inside the input string and also shows at what position the string pattern/patterns available inside the string pattern. Print_r will show the output of the above preg_match() program of PHP Programming Language.

Читайте также:  In javascript what is function prototype

preg_match in PHP 1

Example #2

In the below example, a variable “$pro_url” is created with the string value www.profitloops.com. Then an if condition is created with the condition that if the word “profit” is present in the “$pro_url” then the IF condition will consider it as TRUE and prints the statement which is mentioned. Here “the URL www.profitloops.com contains profit” will be printed and it is also shown in the output of the browser and placed below the output section. If the word “profit” is not present in the www.profitloops.com then statements which are in the ELSE condition will be printed. Then once again an IF statement is made just like the above syntax to check whether the word “loops” is present in the” www.profitloops.com” word. If the condition is a fault then the ELSE condition’s statements will be printed. But here the IF conditions are TRUE so the statements which are inside of the IF will be printed.

 else < echo "the url $pro_url does not contain profit , "; >if (preg_match("/loops/", $pro_url)) < echo "the url $pro_url contains loops , "; >else < echo "the url $pro_url does not contain loops , "; >?>

preg_match in PHP 2

This is a guide to preg_match in PHP. Here we discuss the introduction, syntax, and working of preg_match in PHP along with different examples. You may also have a look at the following articles to learn more –

25+ Hours of HD Videos
5 Courses
6 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

92+ Hours of HD Videos
22 Courses
2 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

83+ Hours of HD Videos
16 Courses
1 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

PHP Course Bundle — 8 Courses in 1 | 3 Mock Tests
43+ Hours of HD Videos
8 Courses
3 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

Источник

Оцените статью