Updated October 17, 2023
Introduction to 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 exists, or else the preg_match() function will return FALSE. The Preg_match() function basically works using some of the parameters, which are very 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. We use the preg_match() function to search for the required string patterns within the string data. The “matches” parameter, when included and used with print, will find the matching string content and display it in the output.
Syntax:
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 preg_match() function comprises five parameters: pattern, input, matches, flags, and offset.
- Every parameter in the preg_match() function is helpful in searching for string patterns within a large string or document that contains alphanumeric string data.
How does preg_match work in PHP?
The preg_match() function in the PHP programming language searches for string patterns within a large list of string sentences or other data. It only returns a TRUE value if the string pattern is found. Otherwise, it returns a FALSE value. PHP’s Preg_match() function usually works based on the five parameters included inside of the preg_match () function.
Given below are the parameters:
1. Pattern Parameter: This is the PHP’s preg_match() parameter, which is used to hold the pattern to search the string as a string. We denote the pattern as a variable by using the “$” symbol inside the function.
2. Input Parameter: The 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 mean the same string is present or not. The $matches[0] will actually contain the full text, which is the full-matched string pattern. $matches[1] is going to contain the string text that 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 store anything in the matches array.
4. Flags Parameter: The flags parameter can contain some other flags, which are very helpful in handling the string pattern searching.
- PREG_OFFSET_CAPTURE FLAG: If you pass the flag to the preg_match() function, it will return the appended offset/offsets for each match string.
- 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 helpful in searching from the very beginning of the string which is sent as an input. This offset parameter is optional and isn’t needed at all times. You can use it based on the requirement. The “offset” parameter specifies the starting position for the string search.
6. Return value from the preg_match(): The preg_match() function of PHP is always going to return TRUE only if the string pattern exists otherwise, the preg_match() function will return as FALSE.
Examples of preg_match in PHP
Given below are the examples:
Example #1
This illustrates preg_match() using the PREG_OFFSET_CAPTURE flag. “$pavan1” is created and stored as a string value “PavanKumarSake” and assigned to “$pavan1”. Then preg_match() is declared with parameters.
‘/(Pavan)(Kumar)(Sake)/’ is the pattern parameter that holds the pattern, which is to search in the input string/string value. Next, we insert the variable “$pavan1” as an input variable. This variable usually contains the string element that we need to search to determine if the string variable’s value exists within it or not. Next, we place the variable “$matches1” after the comma following the variable “$pavan1”. 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 that is/are fully matched with the pattern/patterns. So the output of array[0] is “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 are available inside the input string and also shows at what position the string pattern/patterns are available inside the string pattern. Print_r will show the output of the above preg_match() program of PHP Programming Language.
Code:
<?php
$pavan1 = 'PavanKumarSake';
preg_match('/(Pavan)(Kumar)(Sake)/', $pavan1, $matches1, PREG_OFFSET_CAPTURE);
print_r($matches1);
?>
Output:
Example #2
In the example below, we assign the string value “www.profitloops.com” to the variable $pro_url. To check if the word “profit” is present in the variable $pro_url, you can use an if statement with the preg_match function. If the function returns a non-zero value, indicating a match, the if condition will consider it as true.
You can then execute the desired statement. The statement “The URL www.profitloops.com contains profit” will be printed if the word “profit” is present in the URL. The browser will display the output below the output section. If the word “profit” is not present in www.profitloops.com, then statements that are in the ELSE condition will be printed.
We use another IF statement to check if the word “loops” appears in the word located at www.profitloops.com. 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 that are inside of the IF will be printed.
Code:
<?php
$pro_url = "www.profitloops.com";
if (preg_match("/profit/", $pro_url))
{
echo "the url $pro_url contains profit , ";
}
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 , ";
}
?>
Output:
Recommended Articles
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 –