Bruk av preg_match -funksjonen i PHP

Bruk av preg_match -funksjonen i PHP

Det vanlige uttrykket er et bestemt mønster som kan brukes til å matche, søke og erstatte en bestemt streng i tekstdata. Det er et kraftig trekk ved ethvert programmeringsspråk. Det brukes hovedsakelig til å utføre forskjellige typer skjemavalideringer, for eksempel validering av e -post, sjekke telefonformatet, validering av brukernavn og passordfelt i påloggingsskjemaet osv. Et bestemt innhold i teksten kan søkes og erstattes ved hjelp av et vanlig uttrykksmønster. Det kalles også regex eller regexp. Ulike typer symboler brukes til å definere regex -mønsteret.

Mange innebygde funksjoner finnes i PHP for det vanlige uttrykket. preg_match () -funksjonen er en av dem. Denne funksjonen brukes til å matche et bestemt mønster i strengdata. Hvordan preg_match () -funksjonen kan brukes i PHP for å utføre forskjellige oppgaver blir forklart i denne opplæringen.

Syntaks:

Int eller falsk preg_match (streng $ mønster, streng $ emne [, array & $ matches = null [, int $ flagg = 0 [, int $ offset = 0]]])

Denne funksjonen kan ta fem argumenter. Det første argumentet, $ mønster, er obligatorisk, som definerer mønsteret for matching. Det andre argumentet, $ emne, er obligatorisk, og inneholder strengdataene som mønsteret vil bli brukt. Det tredje argumentet, $ kamper, er valgfritt og den returnerer en matrise basert på kampen. Det fjerde argumentet, $ flagg, er valgfritt, som inneholder forskjellige typer flaggverdier basert på kampen. Det femte argumentet, $ Offset, er valgfritt, og kan brukes til å definere startposisjonen til søket.

Eksempel 1: Match mønsteret på en saksfølsom og case-ufølsom måte

Følgende eksempel viser bruken av preg_match () -funksjonen for å matche strengen på en saksfølsom og case-ufølsom måte. Opprett en PHP -fil med følgende skript.

Her brukes tre mønstre for å bruke i tre preg_match () -funksjoner. Det første mønsteret, '/Som/', brukes til å matche strengen på en saksfølsom måte. Det andre mønsteret, '/som/', brukes til å matche strengen på en saksfølsom måte. Det tredje mønsteret, 'Som jeg', brukes til å matche strengen på en følsom måte. search_pattern () Funksjon er definert i skriptet for å bruke preg_match () -funksjonen for matching, og det skriver ut meldingen basert på den returnerte verdien av denne funksjonen.

// definere teksten
$ tekst = "Jeg liker php. Jeg liker JavaScript også.";
// definere tre typer mønster
$ mønster1 = '/like/';
$ mønster2 = '/like/';
$ mønster3 = '/like/i';
// definere funksjon for å søke i mønsteret i teksten
funksjon search_pattern ($ mønster, $ streng)

if (preg_match ($ mønster, $ streng))
ekko "Søkeresultat: Match er funnet for mønsteret - $ mønster
";
ellers
ekko "Søkeresultat: Match er ikke funnet for mønsteret - $ mønster
";

// Skriv ut originalteksten
ekko "Den originale teksten er: $ tekst
";
// Ring funksjonen tre ganger for tre mønstre
search_pattern ($ mønster1, $ tekst);
search_pattern ($ mønster2, $ tekst);
search_pattern ($ mønster3, $ tekst);
?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren. Den første linjen viser teksten der mønstrene ble gjennomsøkt. Den andre linjen viser utgangen fra det første mønsteret. Den tredje linjen viser utgangen fra det andre mønsteret. Den fjerde linjen viser utgangen fra det tredje mønsteret.

Eksempel 2: Valider nettadressen

Følgende eksempel viser måten å validere URL -adressen ved hjelp av preg_match () -funksjonen. Opprett en PHP -fil med følgende skript.

En URL -verdi er tilordnet i variabelen $ URL for testing. '@^(?: https: //)?([^/]+)@i 'streng brukes som et mønster i preg_match () -funksjonen for å sjekke om URL -adressen er gyldig eller ikke. Hvis det er gyldig, vil vertsnavnet og domenenavnet bli skrevet ut, ellers blir feilmeldingen skrevet ut.

// definere URL -en
$ url = "https: // www.Linuxhint.com ";
// definere mønsteret for validering av nettadressen
$ mønster = '@^(?: https: //)?([^/]+)@i ';
// sjekk nettadressen er gyldig eller ikke
if (preg_match ($ mønster, $ url, $ matches1))

// Skriv ut suksessmeldingen
ekko "URLen er gyldig.
";
// Skriv ut matrisen som inneholder kampverdiene
ekko "Verdiene til matrisen er:";
print_r ($ matches1);
// hente og skrive ut vertsverdien
$ host = $ matches1 [1];
ekko "
Vertsnavnet er: $ vert ";
// Søk i domenenavnet fra vertsverdien
preg_match ('/[^.]+\.[^.]+$/', $ vert, $ matches2);
ekko "
Domenenavn er: $ matches2 [0] ";

ellers

// Skriv ut feilmeldingen
ekko "ugyldig url.";

?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren. Den medfølgende URL -en i skriptet er gyldig. Så utdataene viser verdiene til $ -kampene, nettnavnet til URL -en og URL.

Eksempel 3: Søkemønster med flagg- og forskyvningsverdier

Følgende eksempel viser bruken av flagg- og forskyvningsverdiene i preg_match () -funksjonen. Opprett en PHP -fil med følgende skript.

Tre mønstre brukes i skriptet for tre typer matching. I den første preg_match () -funksjonen, '/(Bangla) (Desh)/' brukes som mønsteret og flaggverdien brukes, preg_offset_capture. Verdiene til $ kamper Variabel vil skrives ut basert på utgangen fra den første preg_match () -funksjonen. I den andre preg_match () -funksjonen, '/(bangla) (glad)*(desh)/i', brukes som mønsteret og flaggverdien, preg_unmatched_as_null brukes. Hvis noen del av mønsteret ikke stemmer overens, blir en nullverdi lagret i matrisen. Verdiene til $ kamper Variabel vil skrives ut basert på utgangen fra den andre preg_match () -funksjonen. I den tredje preg_match () -funksjonen, '/Glad/' brukes som mønsteret, brukes flaggverdien, preg_offset_capture og 3 brukes som forskyvningsverdi. Verdiene til $ kamper Variabel vil skrives ut basert på utgangen fra den tredje preg_match () -funksjonen.

// definere tekstverdien
$ tekst = "Bangladesh";
// definere tre type mønstre
$ mønster1 = '/(bangla) (desh)/i';
$ mønster2 = '/(bangla) (glad)*(desh)/i';
$ mønster3 = '/glad/';
// ved hjelp av preg_offset_capture Flag
preg_match ($ mønster1, $ tekst, $ matches, preg_offset_capture);
ekko "
";
print_r ($ matches);
ekko "

";
// Bruke preg_unmatched_as_null Flag
preg_match ($ mønster2, $ tekst, $ matches, preg_unmatched_as_null);
ekko "
";
print_r ($ matches);
ekko "

";
// ved hjelp av preg_offset_capture flagg og forskyvningsverdi
preg_match ($ mønster3, $ tekst, $ matches, preg_offset_capture, 3);
ekko "
";
print_r ($ matches);
ekko "
";
?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren.

Konklusjon

Bruken av preg_match () -funksjonen er forklart i denne opplæringen ved hjelp av flere eksempler. Bruken av forskjellige argumenter for denne funksjonen er også vist her. Leserne vil kunne bruke denne funksjonen riktig i manuset sitt etter å ha lest denne opplæringen.