php

Utilizarea funcției preg_match () în PHP

Utilizarea funcției preg_match () în PHP

Expresia regulată este un model special care poate fi folosit pentru a potrivi, căuta și înlocui orice șir particular din datele text. Este o caracteristică puternică a oricărui limbaj de programare. Este utilizat în principal pentru a efectua diferite tipuri de validări de formulare, cum ar fi validarea e-mailului, verificarea formatului telefonului, validarea câmpurilor de nume de utilizator și parolă ale formularului de conectare etc. Orice conținut particular al textului poate fi căutat și înlocuit folosind un model de expresie regulată. Se mai numește regex sau RegExp. Diferite tipuri de simboluri sunt utilizate pentru a defini modelul regex.

Multe funcții încorporate există în PHP pentru expresia regulată. funcția preg_match () este una dintre ele. Această funcție este utilizată pentru potrivirea unui anumit model în datele șirului. Modul în care funcția preg_match () poate fi utilizată în PHP pentru efectuarea diverselor sarcini este explicată în acest tutorial.

Sintaxă:

Int sau fals preg_match (șir $ model, șir $ subiect [, matrice și $ potriviri = nul [, int $ steaguri = 0 [, int $ offset = 0]]))

Această funcție poate lua cinci argumente. Primul argument, $ model, este obligatoriu, care definește modelul pentru potrivire. Al doilea argument, $ subiect, este obligatoriu și conține datele șirului în care modelul va fi aplicat. Al treilea argument, $ meciuri, este opțional și returnează o matrice bazată pe meci. Al patrulea argument, $ steaguri, este opțional, care conține diferite tipuri de valori de semnalizare bazate pe potrivire. Al cincilea argument, $ offset, este opțional și poate fi utilizat pentru a defini poziția inițială a căutării.

Exemplul 1: Potriviți modelul într-un mod sensibil la majuscule și minuscule

Următorul exemplu arată utilizarea funcției preg_match () pentru potrivirea șirului într-o manieră diferențiată de majuscule și minuscule. Creați un fișier PHP cu următorul script.

Aici, trei modele sunt utilizate pentru aplicarea în trei funcții preg_match (). Primul model, '/Ca/', este folosit pentru potrivirea șirului într-un mod sensibil la majuscule. Al doilea tipar, '/ca/', este folosit pentru potrivirea șirului într-un mod sensibil la majuscule. Al treilea tipar, 'Ca eu', este folosit pentru potrivirea șirului într-un mod care nu face sensibilitate la majuscule. search_pattern () funcția este definită în script pentru a utiliza funcția preg_match () pentru potrivire și tipărește mesajul pe baza valorii returnate a acestei funcții.

// Definiți textul
$ text = "Îmi place PHP. Îmi place și JavaScript.";
// Definiți trei tipuri de tipare
$ pattern1 = '/ Like /';
$ pattern2 = '/ like /';
$ pattern3 = '/ Like / i';
// Definiți funcția pentru căutarea modelului din text
funcție search_pattern ($ pattern, $ string)

if (preg_match ($ model, $ șir))
echo "Rezultatul căutării: Potrivirea se găsește pentru modelul - modelul $
";
altceva
echo "Rezultatul căutării: Nu se găsește potrivirea pentru model - modelul $
";

// Imprimați textul original
ecou "Textul original este: $ text
";
// Apelați funcția de trei ori pentru trei modele
search_pattern ($ model1, $ text);
search_pattern ($ model2, $ text);
search_pattern ($ pattern3, $ text);
?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului de pe server. Primul rând arată textul în care au fost căutate tiparele. A doua linie arată ieșirea primului model. A treia linie arată ieșirea celui de-al doilea model. A patra linie arată ieșirea celui de-al treilea model.

Exemplul 2: validați adresa URL

Următorul exemplu arată modul de validare a adresei URL utilizând funcția preg_match (). Creați un fișier PHP cu următorul script.

O valoare URL este atribuită în variabila $ url pentru testare. '@ ^ (?: https: //)?([^ /] +) Șirul @ i 'este utilizat ca model în funcția preg_match () pentru a verifica dacă adresa URL este validă sau nu. Dacă este valid, atunci numele gazdei și numele domeniului vor fi tipărite, în caz contrar, mesajul de eroare va fi tipărit.

// Definiți adresa URL
$ url = "https: // www.linuxhint.com ";
// Definiți modelul pentru validarea adresei URL
$ pattern = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Verificați dacă adresa URL este validă sau nu
if (preg_match ($ pattern, $ url, $ matches1))

// Imprimați mesajul de succes
echo "Adresa URL este validă.
";
// Imprimați tabloul care conține valorile de potrivire
ecou "Valorile matricei sunt:";
print_r ($ matches1);
// Recuperați și imprimați valoarea gazdei
$ gazdă = $ meciuri1 [1];
ecou "
Numele gazdei este: $ host ";
// Căutați numele domeniului din valoarea gazdei
preg_match ('/ [^.] + \.[^.] + $ / ', $ gazdă, $ meciuri2);
ecou "
Numele de domeniu este: $ matches2 [0] ";

altceva

// Imprimați mesajul de eroare
echo "Adresă URL nevalidă.";

?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului de pe server. Adresa URL furnizată în script este validă. Deci, ieșirea arată valorile potrivirilor $, numele gazdei adresei URL și numele domeniului adresei URL.

Exemplul 3: Căutați modelul cu steag și valori de compensare

Următorul exemplu arată utilizările valorilor de semnalizare și de compensare în funcția preg_match (). Creați un fișier PHP cu următorul script.

Trei tipare sunt utilizate în script pentru trei tipuri de potrivire. În prima funcție preg_match (), „/ (bangla) (desh) /” este folosit ca model și valoarea steagului, se utilizează PREG_OFFSET_CAPTURE. Valorile $ meciuri variabila va imprima pe baza rezultatului primei funcții preg_match (). În cea de-a doua funcție preg_match (), „/ (bangla) (glad) * (desh) / i”, este folosit ca model și valoarea steagului, se utilizează PREG_UNMATCHED_AS_NULL. Dacă o parte a modelului nu se potrivește, atunci o valoare NULL va fi stocată în matrice. Valorile $ meciuri variabila va imprima pe baza rezultatului celei de-a doua funcții preg_match (). În cea de-a treia funcție preg_match (), „/ glad /” este folosit ca model, valoarea indicatorului, PREG_OFFSET_CAPTURE este utilizat și 3 este utilizat ca valoare de offset. Valorile $ meciuri variabila va imprima pe baza ieșirii celei de-a treia funcții preg_match ().

// Definiți valoarea textului
$ text = "Bangladesh";
// Definiți trei tipuri de modele
$ pattern1 = '/ (bangla) (desh) / i';
$ pattern2 = '/ (bangla) (bucuros) * (desh) / i';
$ pattern3 = '/ glad /';
// Folosind pavilionul PREG_OFFSET_CAPTURE
preg_match ($ model1, $ text, $ potriviri, PREG_OFFSET_CAPTURE);
ecou "
";
print_r ($ potriviri);
ecou "

";
// Folosind pavilionul PREG_UNMATCHED_AS_NULL
preg_match ($ model2, $ text, $ potriviri, PREG_UNMATCHED_AS_NULL);
ecou "
";
print_r ($ potriviri);
ecou "

";
// Utilizarea semnalizatorului PREG_OFFSET_CAPTURE și a valorii de compensare
preg_match ($ model3, $ text, $ potriviri, PREG_OFFSET_CAPTURE, 3);
ecou "
";
print_r ($ potriviri);
ecou "
";
?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului de pe server.

Concluzie

Utilizările funcției preg_match () au fost explicate în acest tutorial folosind mai multe exemple. Utilizările diferitelor argumente ale acestei funcții au fost de asemenea prezentate aici. Cititorii vor putea folosi această funcție în mod corespunzător în scriptul lor după ce au citit acest tutorial.

Cum se instalează League Of Legends pe Ubuntu 14.04
Dacă ești fan al League of Legends, atunci aceasta este o oportunitate pentru tine de a testa rula League of Legends. Rețineți că LOL este acceptat pe...
Instalați cel mai recent joc de strategie OpenRA pe Ubuntu Linux
OpenRA este un motor de jocuri de strategie în timp real Libre / Free care recreează primele jocuri Westwood, cum ar fi clasicul Command & Conquer: Re...
Instalați cel mai recent Dolphin Emulator pentru Gamecube și Wii pe Linux
Emulatorul Dolphin vă permite să jucați jocurile alese de Gamecube și Wii pe computerele personale Linux (PC). Fiind un emulator de joc liber disponi...