Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Using preg_match(): Unleashing the Power of Regular Expressions in PHP

Using preg_match()

Using preg_match()

In the realm of PHP, regular expressions stand as invaluable tools for manipulating and extracting meaningful patterns from textual data. Among the arsenal of regular expression functions at our disposal, preg_match() reigns supreme, offering a robust and versatile approach to pattern matching.

Demystifying preg_match()

The preg match() function, as its name suggests, performs a pattern match against a specified string. It returns 1 if the pattern is found, 0 if not, and FALSE in case of an error. The function takes three mandatory arguments:

  1. Pattern: The regular expression pattern to be matched against the string.

  2. Subject: The string to be searched for pattern matches.

  3. Matches: An optional array that will hold the captured matches if the pattern is found.

Harnessing the Power of preg_match()

Let’s delve into some practical examples to illustrate the power of preg match():

Matching a Single Email Address:

$email = "";
$pattern = "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/";
$match = preg_match($pattern, $email);

if ($match) {
echo "Valid email address";
} else {
echo "Invalid email address";

Extracting Phone Numbers from Text:

$text = "Contact us at (123) 456-7890 or 011-44-123-4567.";
$pattern = "/\d{3}-\d{3}-\d{4}|\d{2}-\d{3}-\d{4}/";
$matches = preg_match_all($pattern, $text, $phoneNumbers);

if ($matches) {
echo "Phone numbers found: ";
foreach ($phoneNumbers[0] as $phoneNumber) {
echo $phoneNumber . ", ";
} else {
echo "No phone numbers found";

Validating ZIP Codes

$zipCode = "90210";
$pattern = "/^\d{5}(?:-\d{4})?$/";
$match = preg_match($pattern, $zipCode);

if ($match) {
echo "Valid ZIP code";
} else {
echo "Invalid ZIP code";

Advanced Usage of preg_match()

preg_match() offers a plethora of options to tailor its behavior, including:

  • PREG_OFFSET_CAPTURE: Captures the starting position of each match.

  • PREG_UNMATCHED_AS_NULL: Returns unmatched subpatterns as NULL instead of empty strings.

  • PREG_NO_CAPTURE: Disables capture groups, improving performance for simple pattern matching.


preg_match(), with its versatile capabilities and extensive options, stands as an essential tool for mastering regular expressions in PHP. By harnessing its power, developers can effortlessly navigate the intricacies of textual data manipulation, unlocking a world of possibilities for data extraction, validation, and transformation.

Scroll to Top