(PHP 3>= 3.0.9, PHP 4 )
preg_match -- Perform a regular expression match
Description
int
preg_match ( string pattern, string subject [, array matches])
Searches subject for a match to the regular
expression given in pattern.
If matches is provided, then it is filled
with the results of search. $matches[0] will contain the text that
matched the full pattern, $matches[1] will have the text that matched
the first captured parenthesized subpattern, and so on.
preg_match() returns the number of times
pattern matches. That will be either 0 times
(no match) or 1 time because preg_match() will stop
searching after the first match. preg_match_all()
on the contrary will continue until it reaches the end of
subject.
preg_match() returns FALSE if an error occured.
Example 1. Find the string of text "php" // the "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
} |
|
Example 2. find the word "web" // the \b in the pattern indicates a word boundary, so only the distinct
// word "web" is matched, and not a word partial like "webbing" or "cobweb"
if (preg_match ("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
if (preg_match ("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
} |
|
Example 3. Getting the domain name out of a URL // get host name from URL
preg_match("/^(http:\/\/)?([^\/]+)/i",
"http://www.php.net/index.html", $matches);
$host = $matches[2];
// get last two segments of host name
preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches);
echo "domain name is: ".$matches[0]."\n"; |
This example will produce:
|
See also
preg_match_all(),
preg_replace(), and
preg_split().