PHP Manual
Prev |  | Next

# preg_match

(3.0.9 - 3.0.18 only, PHP 4 >= 4.0.0)

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.

Returns `TRUE` if a match for `pattern` was found in the subject string, or `FALSE` if not match was found or an error occurred.

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:
    domain name is: php.net

See also preg_match_all(), preg_replace(), and preg_split().

Prev | Home | Next
Regular Expression Functions (Perl-Compatible) | Up | preg_match_all