Regex în PHP

PHP JSON și funcții de apel invers
OOP în PHP: un ghid pentru începători

Ce este o expresie regulată?

Expresia regulată este, practic, începută de la matematică, care definește o serie de caractere într-un anumit scop. Diferite limbi obțin referințe de la acest concept matematic și îl aplică pentru căutarea modelelor și validarea datelor. În acest articol, veți învăța regex în PHP.

Există multe cazuri de utilizare a expresiilor regex în PHP, cum ar fi căutarea, validarea etc. În acest articol, veți afla despre expresiile regulate din modelele de căutare. Odată ce veți putea înțelege regex-ul, îl puteți utiliza oriunde în PHP.

O expresie regulată poate fi folosită pentru a căuta text din șiruri de caractere sau pentru a înlocui anumite caractere sau șiruri de caractere.

O expresie regulată poate fi un singur caracter sau o combinație a unor modele complexe.

Sintaxa expresiei regulate în PHP

Delimitatorul poate fi orice caracter care nu este o literă, un număr, o bară oblică inversă sau un spațiu. Cel mai comun delimitator este forward-slash (/), dar atunci când modelul dvs. conține bare oblice înainte, este convenabil să alegeți alți delimitatori, cum ar fi # sau ~.

În general, expresia regulată în PHP constă of trei părți.

  1. delimitator – Specifică faptul că spune începutul sau sfârșitul șirului în model. Un delimitator nu poate fi o bară oblică inversă, un număr, o literă sau un spațiu. Cu toate acestea, o bară oblică înainte poate fi folosită ca delimitator. Dacă modelele pe care le căutați constau în redirecționarea barelor oblice, puteți schimba delimitatorul în inclinare ~ sau hash #.
  2. Model – A specificat modelul sau secvența de caractere de căutat.
  3. Modificatori (opțional) – Puteți face ca potrivirea majusculelor tip model să fie insensibilă sau sensibilă.

Exemplu

$exp = "/php.org/i";

RegextFunctions în PHP

PHP oferă funcții încorporate pentru expresiile regulate. Cele mai comune funcții regex în PHP sunt:

  • Preg_replace() – Numărează de câte ori apare modelul în șir și returnează numărul.
  • Preg_match() – returnează 0 în cazul în care modelul nu a fost găsit în șir. 1 în caz de găsit.
  • Preg_match_all() – Această funcție înlocuiește șirul cu un alt șir în care modelul este potrivit. Veți obține o idee mai clară în secțiunea următoare dacă vă este greu de înțeles.

funcția preg_match în PHP

Funcția preg_match returnează rezultat binar. Adică fie 0, fie 1. Dacă șirul conține modelul pe care îl specificați în primul argument al funcției preg_match, va returna 1. 0 în cazul în care nu este găsit.

Uitați-vă la următorul exemplu, în care căutăm șirul de caractere PHP.

<?php
$str = "Visit php.org";
$pattern = "/php/i";
echo preg_match($pattern, $str); // Outputs 1
?>

funcția preg_match_all în PHP

Această funcție nu spune dacă modelul există sau nu în șir. Returnează numărul de ori când un model apare în șir. Uitați-vă la următorul exemplu în care am efectuat o căutare fără a ține seama de majuscule și minuscule a modelelor din șirul dat.

Exemplu

<?php
$str = "It is raining heavily. Cars are slipping outside. ";
$pattern = "/ing/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>

/i în exemplul de mai sus specificați că șirul poate fi fie cu litere mici, fie cu litere mari.

funcția preg_replace în PHP

preg_replace funcția returnează un șir nou prin înlocuirea modelului găsit în șir cu un alt șir de caractere. Această funcție acceptă trei parametri. Primul parametru este modelul de căutat în șirul din al doilea parametru. În cele din urmă, al treilea parametru este șirul care trebuie pus în locul modelului găsit în șir.

Priviți următorul exemplu, în care înlocuim cuvântul website cu PHP.org

Exemplu

<?php
$str = "Visit Website!";
$pattern = "/Website/i";
echo preg_replace($pattern, "php.org", $str); // Outputs "Visit php.org!"
?>

Modificatori de expresie regulată

Puteți ajusta comportamentul de căutare al expresiei regex în PHP prin definirea următoarelor variabile modificatoare.

  1. I – Folosit pentru a efectua căutări fără distincție între majuscule și minuscule.
  2. U – Pentru căutarea corectă a modelelor utf-8.
  3. M – Adaugă căutarea multiplă în expresia regex PHP. Există unele modele care caută la începutul sau la sfârșitul fiecărei linii. Deci, aceste modele privesc începutul și sfârșitul fiecărei linii a șirului.

Specificați intervalul în expresia regex PHP

Înțelegeți următoarele trei concepte. Vă va ajuta să puneți intervalul în modele în timp ce căutați text sau îl înlocuiți.

  1. [abc] – Parantezele pătrate au indicat că găsiți un caracter din aceste caractere în șir.
  2. [^0-9] – Căutați caracterele care nu se află în intervalul dintre paranteze.
  3. [0-9] – Găsiți orice caracter între 0 și 9. 0 și 9 sunt inclusiv în acest caz.

Puteți afla mai multe despre funcțiile Regex în PHP aici

PHP JSON și funcții de apel invers
OOP în PHP: un ghid pentru începători
en English
X
Derulaţi în sus