PHP preg_match(): expresii regulate (regex)

โšก Rezumat inteligent

Regular Expressions in PHP are pattern-matching tools that validate, split, and replace text in a single expression. This walkthrough covers the core functions preg_match, preg_split, and preg_replace, explains the common metacharacters, and builds a working email validation pattern step by step.

  • ๐Ÿงฉ What Regex Is: A regular expression is a pattern that describes text, letting one function validate, search, or transform strings.
  • โœ… preg_match: preg_match tests whether a pattern appears in a string and returns true on the first match, ideal for validation.
  • โœ‚๏ธ preg_split: preg_split breaks a string into an array wherever the pattern occurs, such as splitting a sentence on spaces.
  • ๐Ÿ” preg_replace: preg_replace finds every match of a pattern and replaces it with new text, useful for templating and highlighting.
  • ๐Ÿ”ค Metacaractere: Symbols like ., ^, $, *, and + build complex patterns, for example anchoring a match to the start or end.
  • ๐Ÿ“ง Email Pattern: Character classes and quantifiers combine into a single pattern that checks whether an email address is well formed.
  • ๐Ÿค– Asistenศ›ฤƒ AI: AI tools can write a regex from a plain description and explain or debug a complex existing pattern.

PHP Regular Expressions

What is Regular expression in PHP?

PHP regular expressions, also known as regex, are a powerful pattern matching tool that can be performed in a single expression. Regular expressions use special characters such as +, -, and ^ to create complex expressions. They can help you accomplish tasks such as validating email addresses, IP addresses, and more.

De ce sฤƒ folosiศ›i expresii regulate

  • PHP regular expressions simplify identifying patterns in string data by calling a single function. This saves us coding time.
  • When validating user input such as email addresses, domain names, telephone numbers, and IP addresses
  • Evidenศ›ierea cuvintelor cheie รฎn rezultatele cฤƒutฤƒrii
  • Cรขnd creaศ›i un ศ™ablon HTML personalizat. Regex รฎn PHP poate fi folosit pentru a identifica etichetele ศ™ablonului ศ™i pentru a le รฎnlocui cu date reale.

Funcศ›ii de expresie regulatฤƒ รฎncorporate รฎn PHP

PHP has built-in functions that allow us to work with regular expressions, which we will learn in this tutorial. Let us look at the commonly used regular expression functions in PHP.

  • preg_match() in PHP โ€“ this function is used to perform pattern matching on a string. It returns true if a match is found and false if a match is not found.
  • preg_split() in PHP โ€“ this function is used to perform a pattern match on a string and then split the results into a numeric array.
  • preg_replace() รฎn PHP โ€“ aceastฤƒ funcศ›ie este folositฤƒ pentru a efectua o potrivire de tipar pe un ศ™ir ศ™i apoi pentru a รฎnlocui potrivirea cu textul specificat.

Below is the syntax for a regular expression function such as preg_match(), preg_split(), or preg_replace().

<?php
function_name('/pattern/',subject);
?>

AICI,

  • โ€œfunction_name(โ€ฆ)โ€ is either preg_match(), preg_split(), or preg_replace().
  • โ€œ/โ€ฆ/โ€ the forward slashes denote the beginning and end of our regular expression
  • โ€œโ€˜/pattern/'โ€ is the pattern that we need to match
  • โ€žsubiectโ€ este ศ™irul de text cu care trebuie sฤƒ se potriveascฤƒ

Let us now look at practical examples that implement the above PHP regex functions.

Preg_match() รฎn PHP

The first example uses the preg_match() function to perform a simple pattern match for the word guru in a given URL.

The code below shows the implementation of the preg_match() function for the above example.

<?php
$my_url = "www.guru99.com";
if (preg_match("/guru/", $my_url))
{
echo "the url $my_url contains guru";
}
else
{
echo "the url $my_url does not contain guru";
}
?>

Navigaศ›i la URL http://localhost/phptuts/preg_match_simple.php

Funcศ›ii de expresie regulatฤƒ รฎncorporate

Let us examine the part of the code responsible for our output, preg_match(โ€˜/guru/โ€™, $my_url). HERE,

  • โ€žpreg_match(โ€ฆ)โ€ este funcศ›ia PHP regex
  • โ€ž'/guru/'โ€ este modelul de expresie regulatฤƒ care trebuie potrivit
  • โ€ž$my_urlโ€ este variabila care conศ›ine textul cu care se potriveศ™te.

PHP Preg_split()

Let us now look at another example that uses the preg_split() function.

Vom lua o frazฤƒ ศ™ir ศ™i o vom exploda รฎntr-o matrice; modelul care trebuie asortat este un singur spaศ›iu.

ศ˜irul de text care va fi folosit รฎn acest exemplu este โ€žIubesc expresiile obiศ™nuiteโ€.

Codul de mai jos ilustreazฤƒ implementarea exemplului de mai sus.

<?php

$my_text = "I Love Regular Expressions";

$my_array = preg_split("/ /", $my_text);

print_r($my_array );

?>

Navigaศ›i la URL http://localhost/phptuts/preg_split.php

PHP Preg_split()

PHP Preg_replace()

Let us now look at the preg_replace() Funcศ›ia PHP care efectueazฤƒ o potrivire a modelului ศ™i apoi รฎnlocuieศ™te modelul cu altceva.

Codul de mai jos cautฤƒ cuvรขntul guru รฎn a ลŸir.

It replaces the word guru with the word guru surrounded by CSS code that highlights the background color.

<?php

$text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com";

$text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text);

echo $text;

?>

Assuming you have saved the file preg_replace.php, browse to the URL http://localhost/phptuts/preg_replace.php

PHP Preg_replace()

Metacaracterele expresiei regulate

The above examples used very basic patterns. Metacharacters allow us to perform more complex pattern matches, such as testing the validity of an email address. Let us now look at the commonly used metacharacters.

Metacaracter Descriere Exemplu
. Se potriveศ™te cu orice caracter, cu excepศ›ia unei linii noi /./ se potriveศ™te cu orice are un singur caracter
^ Matches the beginning of a string or excludes characters /^PH/ se potriveศ™te cu orice ศ™ir care รฎncepe cu PH
$ Matches a pattern at the end of the string /com$/ matches guru99.com, yahoo.com etc.
* Matches zero or more of the preceding characters /com*/ se potriveศ™te cu computerul, comunicarea etc.
+ Requires the preceding character(s) appear at least once /yah+oo/ se potriveศ™te cu yahoo
\ Used to escape metacharacters /yahoo+\.com/ trateazฤƒ punctul ca o valoare literalฤƒ
[...] Clasa de caractere /[abc]/ matches a, b or c
az Se potriveศ™te cu litere mici /az/ se potriveศ™te cool, happy etc.
AZ Se potriveศ™te cu litere mari /AZ/ se potriveศ™te cu CE, CUM, DE CE etc.
0-9 Se potriveศ™te cu orice numฤƒr รฎntre 0 ศ™i 9 /0-4/ meciuri 0,1,2,3,4

Lista de mai sus oferฤƒ doar metacaracterele cele mai frecvent utilizate รฎn expresiile regulate.

Let us now look at a fairly complex example that checks the validity of an email address.

<?php
$my_email = "name@company.com";
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) {
echo "$my_email is a valid email address";
}
else
{
echo "$my_email is NOT a valid email address";
}
?>

Explaining the Email Validation Pattern

AICI,

  • โ€œ/โ€ฆ/โ€ starts and ends the regular expression
  • โ€œ^[a-zA-Z0-9._-]โ€ matches any lower or upper case letters, numbers between 0 and 9, and dots, underscores, or dashes.
  • โ€œ+@[a-zA-Z0-9-]โ€ matches the @ symbol followed by lower or upper case letters, numbers between 0 and 9, or dashes.
  • โ€œ+\.[a-zA-Z.]{2,5}$/โ€ escapes the dot using the backslash, then matches any lower or upper case letters with a character length between 2 and 5 at the end of the string.

Navigaศ›i la URL http://localhost/phptuts/preg_match.php

PHP Email Validation Pattern

As you can see from the above breakdown, metacharacters are very powerful when it comes to matching patterns.

รŽntrebฤƒri frecvente

preg_match stops at the first match and fills $matches with that one result. preg_match_all finds every match in the string and returns them all in a nested array, which suits extracting repeated items.

Modifiers follow the closing delimiter and change matching behavior. The i modifier makes the pattern case insensitive, m treats each line separately for ^ and $, and s lets the dot match newlines, as in /guru/i.

Wrap parts of the pattern in parentheses to create capture groups. After preg_match, the full match is in $matches[0] and each group follows in $matches[1], $matches[2], and so on.

Yes. Describe the text you want to match, such as a phone number or date format, and AI can produce the pattern plus a preg_match example. Test it against real and edge-case inputs before relying on it.

Yes. Paste the pattern, and AI can break it down token by token, explain what each part matches, and point out why it fails on certain input, then suggest a corrected version.

Rezumaศ›i aceastฤƒ postare cu: