Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Pattern Matching in PHP

Introduction

Pattern matching is a powerful feature in PHP that allows you to perform complex string searches and manipulations. This is typically done using regular expressions, which are sequences of characters that define a search pattern. Regular expressions can be used for a variety of tasks such as validating input, searching for substrings, and replacing text.

Basic Syntax

In PHP, regular expressions are implemented using the preg_* family of functions. The most commonly used ones include:

  • preg_match() - Perform a pattern match.
  • preg_match_all() - Perform a global pattern match.
  • preg_replace() - Perform a search and replace.

Regular expressions are defined using a specific syntax. For example, the pattern /abc/ will match the string "abc".

Using preg_match()

The preg_match() function searches a string for a pattern and returns true if the pattern is found, otherwise false. Here is an example:

<?php
$pattern = "/abc/";
$string = "abcdef";

if (preg_match($pattern, $string)) {
    echo "Pattern found!";
} else {
    echo "Pattern not found.";
}
?>
Output:
Pattern found!

Using preg_match_all()

The preg_match_all() function searches a string for all occurrences of a pattern and returns the matches in an array. Here is an example:

<?php
$pattern = "/abc/";
$string = "abc abc abc";
$matches = array();

preg_match_all($pattern, $string, $matches);

print_r($matches);
?>
Output:
Array
(
    [0] => Array
        (
            [0] => abc
            [1] => abc
            [2] => abc
        )
)

Using preg_replace()

The preg_replace() function searches a string for a pattern and replaces it with another string. Here is an example:

<?php
$pattern = "/abc/";
$replacement = "def";
$string = "abc abc abc";
$result = preg_replace($pattern, $replacement, $string);

echo $result;
?>
Output:
def def def

Meta-Characters

Regular expressions use meta-characters to define search patterns. Some of the most commonly used meta-characters include:

  • . - Matches any single character except newline.
  • ^ - Matches the start of the string.
  • $ - Matches the end of the string.
  • [] - Matches any one of the enclosed characters.
  • | - Matches either the pattern before or the pattern after the pipe.

For example, the pattern /^abc$/ will match the string "abc" only if it is the entire string.

Quantifiers

Quantifiers define how many instances of a character, group, or character class must be present in the input for a match to be found. Common quantifiers include:

  • * - Matches 0 or more occurrences.
  • + - Matches 1 or more occurrences.
  • ? - Matches 0 or 1 occurrence.
  • {n} - Matches exactly n occurrences.
  • {n,} - Matches n or more occurrences.
  • {n,m} - Matches between n and m occurrences.

For example, the pattern /a{2,3}/ will match "aa" or "aaa".

Common Patterns

Here are some common patterns used in regular expressions:

  • \d - Matches any digit (0-9).
  • \D - Matches any non-digit.
  • \w - Matches any word character (a-z, A-Z, 0-9, _).
  • \W - Matches any non-word character.
  • \s - Matches any whitespace character.
  • \S - Matches any non-whitespace character.

For example, the pattern \d{3}-\d{2}-\d{4} will match a Social Security number format like "123-45-6789".

Conclusion

Pattern matching using regular expressions in PHP is a powerful tool for string manipulation and validation. By understanding the basic syntax, functions, and common patterns, you can effectively perform complex searches and replacements in your PHP applications. Practice with different patterns and functions to become proficient in using regular expressions.