php

Brug af funktionen preg_match () i PHP

Brug af funktionen preg_match () i PHP

Regulært udtryk er et bestemt mønster, der kan bruges til at matche, søge og erstatte en bestemt streng i tekstdata. Det er en stærk funktion i ethvert programmeringssprog. Det bruges hovedsageligt til at udføre forskellige typer formularvalideringer, såsom validering af e-mail, kontrol af telefonformat, validering af brugernavn og adgangskodefelter i loginformularen osv. Ethvert bestemt indhold i teksten kan søges og erstattes ved hjælp af et regulært udtryksmønster. Det kaldes også regex eller RegExp. Forskellige typer symboler bruges til at definere regex-mønsteret.

Der findes mange indbyggede funktioner i PHP til det regulære udtryk. funktionen preg_match () er en af ​​dem. Denne funktion bruges til at matche et bestemt mønster i strengdata. Hvordan funktionen preg_match () kan bruges i PHP til at udføre forskellige opgaver, forklares i denne vejledning.

Syntaks:

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

Denne funktion kan tage fem argumenter. Det første argument, $ mønster, er obligatorisk, hvilket definerer mønsteret til matchning. Det andet argument, $ emne, er obligatorisk og indeholder strengdataene, hvor mønsteret skal anvendes. Det tredje argument, $ matcher, er valgfri, og den returnerer en matrix baseret på kampen. Det fjerde argument, $ flag, er valgfri, som indeholder forskellige typer flagværdier baseret på matchningen. Det femte argument, $ offset, er valgfri og kan bruges til at definere startpositionen for søgningen.

Eksempel 1: Match mønsteret med store og små bogstaver

Følgende eksempel viser brugen af ​​funktionen preg_match () til at matche strengen på en store og små bogstaver. Opret en PHP-fil med følgende script.

Her bruges tre mønstre til anvendelse i tre funktioner preg_match (). Det første mønster, '/Synes godt om/', bruges til at matche strengen på en store og små bogstaver. Det andet mønster, '/synes godt om/', bruges til at matche strengen på en skift mellem store og små bogstaver. Det tredje mønster, 'Ligesom mig', bruges til at matche strengen på en sag-ufølsom måde. søgemønster () funktionen er defineret i scriptet til at bruge preg_match () -funktionen til matchning, og den udskriver beskeden baseret på den returnerede værdi af denne funktion.

// Definer teksten
$ text = "Jeg kan godt lide PHP. Jeg kan også lide JavaScript.";
// Definer tre typer mønstre
$ pattern1 = '/ Like /';
$ pattern2 = '/ like /';
$ pattern3 = '/ Like / i';
// Definer funktion til søgning i mønsteret i teksten
funktion search_pattern ($ mønster, $ streng)

hvis (preg_match ($ mønster, $ streng))
ekko "Søgeresultat: Match findes for mønsteret - $ mønster
";
andet
ekko "Søgeresultat: Match blev ikke fundet for mønsteret - $ mønster
";

// Udskriv originalteksten
ekko "Den originale tekst er: $ tekst
";
// Ring til funktionen tre gange for at få tre mønstre
søgemønster ($ mønster1, $ tekst);
søgemønster ($ mønster2, $ tekst);
søgemønster ($ mønster3, $ tekst);
?>

Produktion:

Følgende output vises efter kørsel af scriptet fra serveren. Den første linje viser teksten, hvor mønstrene blev søgt. Den anden linje viser output fra det første mønster. Den tredje linje viser output fra det andet mønster. Den fjerde linje viser output fra det tredje mønster.

Eksempel 2: Bekræft URL'en

Følgende eksempel viser, hvordan man validerer URL-adressen ved hjælp af funktionen preg_match (). Opret en PHP-fil med følgende script.

En URL-værdi tildeles i variablen $ url til test. '@ ^ (?: https: //)?([^ /] +) @ i 'streng bruges som et mønster i funktionen preg_match () til at kontrollere, om URL-adressen er gyldig eller ikke. Hvis det er gyldigt, udskrives værtsnavnet og domænenavnet, ellers udskrives fejlmeddelelsen.

// Definer URL
$ url = "https: // www.linuxhint.com ";
// Definer mønsteret til validering af URL'en
$ mønster = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Kontroller, at URL'en er gyldig eller ej
hvis (preg_match ($ mønster, $ url, $ matches1))

// Udskriv succesmeddelelsen
ekko "URL'en er gyldig.
";
// Udskriv det array, der indeholder matchværdierne
ekko "Værdierne i arrayet er:";
print_r ($ matches1);
// Hent og udskriv værtsværdien
$ host = $ matches1 [1];
ekko "
Værtsnavn er: $ host ";
// Søg i domænenavnet fra værtsværdien
preg_match ('/ [^.] + \.[^.] + $ / ', $ vært, $ matches2);
ekko "
Domænenavn er: $ matches2 [0] ";

andet

// Udskriv fejlmeddelelsen
ekko "Ugyldig URL.";

?>

Produktion:

Følgende output vises efter kørsel af scriptet fra serveren. Den angivne URL i scriptet er gyldig. Så output viser værdierne for $ matches, URL-værtsnavnet og domænenavnet på URL'en.

Eksempel 3: Søgemønster med værdier for flag og forskydning

Følgende eksempel viser anvendelsen af ​​flag- og offsetværdier i funktionen preg_match (). Opret en PHP-fil med følgende script.

Tre mønstre bruges i scriptet til tre typer matchning. I den første funktion preg_match () bruges '/ (bangla) (desh) /' som mønster og flagværdien, PREG_OFFSET_CAPTURE bruges. Værdierne for $ matcher variabel udskrives baseret på output fra den første funktion preg_match (). I den anden funktion preg_match () bruges '/ (bangla) (glad) * (desh) / i' som mønster og flagværdien, PREG_UNMATCHED_AS_NULL bruges. Hvis nogen del af mønsteret ikke stemmer overens, gemmes en NULL-værdi i arrayet. Værdierne for $ matcher variabel udskrives baseret på output fra den anden funktion preg_match (). I den tredje funktion preg_match () bruges '/ glad /' som mønster, flagværdien, PREG_OFFSET_CAPTURE bruges og 3 bruges som forskydningsværdi. Værdierne for $ matcher variabel udskrives baseret på output fra den tredje funktion preg_match ().

// Definer tekstværdien
$ text = "Bangladesh";
// Definer tre typer mønstre
$ pattern1 = '/ (bangla) (desh) / i';
$ pattern2 = '/ (bangla) (glad) * (desh) / i';
$ pattern3 = '/ glad /';
// Brug af PREG_OFFSET_CAPTURE-flag
preg_match ($ pattern1, $ text, $ matches, PREG_OFFSET_CAPTURE);
ekko "
";
print_r ($ matches);
ekko "

";
// Brug af PREG_UNMATCHED_AS_NULL flag
preg_match ($ pattern2, $ text, $ matches, PREG_UNMATCHED_AS_NULL);
ekko "
";
print_r ($ matches);
ekko "

";
// Brug af PREG_OFFSET_CAPTURE-flag og offset-værdi
preg_match ($ pattern3, $ text, $ matches, PREG_OFFSET_CAPTURE, 3);
ekko "
";
print_r ($ matches);
ekko "
";
?>

Produktion:

Følgende output vises efter kørsel af scriptet fra serveren.

Konklusion

Brugen af ​​funktionen preg_match () er blevet forklaret i denne vejledning ved hjælp af flere eksempler. Brugen af ​​forskellige argumenter for denne funktion er også vist her. Læserne vil være i stand til at bruge denne funktion korrekt i deres script efter at have læst denne tutorial.

HD Remastered-spil til Linux, der aldrig tidligere havde haft en Linux-udgivelse
Mange spiludviklere og udgivere kommer med HD-remaster af gamle spil for at forlænge franchisens levetid. Venligst fans, der anmoder om kompatibilitet...
Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...