php

Použitie funkcie preg_match () v PHP

Použitie funkcie preg_match () v PHP

Regulárny výraz je konkrétny vzor, ​​ktorý je možné použiť na priradenie, hľadanie a nahradenie ľubovoľného konkrétneho reťazca v textových dátach. Je to silná vlastnosť každého programovacieho jazyka. Používa sa hlavne na vykonávanie rôznych typov overovania formulárov, ako napríklad overovanie e-mailov, kontrola formátu telefónu, overovanie polí používateľského mena a hesla prihlasovacieho formulára atď. Akýkoľvek konkrétny obsah textu je možné vyhľadať a nahradiť pomocou vzoru regulárneho výrazu. Nazýva sa tiež regex alebo RegExp. Na definovanie vzoru regulárneho výrazu sa používajú rôzne typy symbolov.

Pre regulárny výraz existuje v PHP veľa zabudovaných funkcií. funkcia preg_match () je jedným z nich. Táto funkcia sa používa na priradenie konkrétneho vzoru v údajoch reťazca. V tomto návode je vysvetlené, ako je možné v PHP použiť funkciu preg_match ().

Syntax:

Int alebo false preg_match (reťazec $ vzor, ​​reťazec $ subject [, pole & $ zápasy = null [, int $ vlajky = 0 [, int $ offset = 0]]])

Táto funkcia môže obsahovať päť argumentov. O prvom argumente, $ vzor, je povinné, čo definuje vzor párovania. O druhom argumente, $ predmet, je povinné a obsahuje údaje o reťazci, v ktorom sa bude vzor uplatňovať. O treťom argumente, $ zápasy, je voliteľné a vráti pole na základe zhody. O štvrtom argumente, $ vlajky, je voliteľné, ktoré obsahuje rôzne typy hodnôt príznakov na základe zhody. Piaty argument, $ offset, je voliteľné a je možné ho použiť na určenie počiatočnej polohy vyhľadávania.

Príklad 1: Priraďte vzor tak, aby sa rozlišovali malé a veľké písmená

Nasledujúci príklad ukazuje použitie funkcie preg_match () na prispôsobenie reťazca spôsobom, v ktorom sa rozlišujú malé a veľké písmená. Vytvorte súbor PHP s nasledujúcim skriptom.

Tu sa používajú tri vzory na aplikáciu v troch funkciách preg_match (). Prvý vzor, '/Páči sa mi to/', sa používa na párovanie reťazca spôsobom, v ktorom sa rozlišujú veľké a malé písmená. Druhý vzor, '/Páči sa mi to/', sa používa na párovanie reťazca spôsobom, v ktorom sa rozlišujú veľké a malé písmená. Tretí vzor, 'Ako ja', sa používa na priraďovanie reťazca bez rozlišovania malých a veľkých písmen. search_pattern () funkcia je v skripte definovaná na použitie funkcie preg_match () na priradenie a správa sa vytlačí na základe vrátenej hodnoty tejto funkcie.

// Definujte text
$ text = "Mám rád PHP. Mám tiež rád JavaScript.";
// Definujte tri typy vzorov
$ pattern1 = '/ Like /';
$ pattern2 = '/ like /';
$ pattern3 = '/ Like / i';
// Definujte funkciu hľadania vzoru v texte
funkcia search_pattern ($ pattern, $ string)

if (preg_match ($ pattern, $ string))
echo "Výsledok hľadania: Zhoda sa nachádza pre vzor - $ pattern
";
inak
echo "Výsledok hľadania: Zhoda sa nenašla pre vzor - $ pattern
";

// Vytlačí pôvodný text
echo "Pôvodný text je: $ text
";
// Zavolajte funkciu trikrát a získajte tri vzory
search_pattern ($ pattern1, $ text);
search_pattern ($ pattern2, $ text);
search_pattern ($ pattern3, $ text);
?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup. Prvý riadok zobrazuje text, kde sa hľadali vzory. Druhý riadok zobrazuje výstup prvého vzoru. Tretí riadok zobrazuje výstup druhého vzoru. Štvrtý riadok zobrazuje výstup tretieho vzoru.

Príklad 2: Overte adresu URL

Nasledujúci príklad ukazuje spôsob overenia adresy URL pomocou funkcie preg_match (). Vytvorte súbor PHP s nasledujúcim skriptom.

V premennej $ url je na testovanie priradená hodnota URL. „@ ^ (?: https: //)?([^ /] +) reťazec @ i 'sa používa ako vzor vo funkcii preg_match () na kontrolu, či je adresa URL platná alebo nie. Ak je platný, potom sa vytlačí názov hostiteľa a názov domény, inak sa vytlačí chybové hlásenie.

// Definujte URL
$ url = "https: // www.linuxhint.com ";
// Definujte vzor na overenie adresy URL
$ pattern = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Skontrolujte, či je adresa URL platná alebo nie
if (preg_match ($ pattern, $ url, $ match1))

// Vytlačte správu o úspechu
echo "URL je platná.
";
// Vytlačí pole, ktoré obsahuje zhodné hodnoty
echo "Hodnoty poľa sú:";
print_r ($ match1);
// Načítanie a tlač hodnoty hostiteľa
$ host = $ zápasy1 [1];
ozvena “
Názov hostiteľa je: $ host ";
// Vyhľadajte názov domény z hodnoty hostiteľa
preg_match ('/ [^.] + \.[^.] + $ / ', $ hostiteľ, $ zápasy2);
ozvena “
Názov domény je: $ match2 [0] ";

inak

// Vytlačte chybové hlásenie
echo "Neplatná adresa URL.";

?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup. Zadaná adresa URL v skripte je platná. Výstup teda zobrazuje hodnoty $ zápasov, názov hostiteľa adresy URL a názov domény adresy URL.

Príklad 3: Vyhľadávací vzor s hodnotami vlajky a offsetu

Nasledujúci príklad ukazuje použitie hodnôt príznaku a posunu vo funkcii preg_match (). Vytvorte súbor PHP s nasledujúcim skriptom.

V skripte sa používajú tri vzory pre tri typy zhody. V prvej funkcii preg_match () sa ako vzor používa '/ (bengálčina) (desh) /' a hodnota príznaku, PREG_OFFSET_CAPTURE. Hodnoty $ zápasy premenná sa vytlačí na základe výstupu prvej funkcie preg_match (). V druhej funkcii preg_match () sa ako vzor a hodnota príznaku používa '/ (bangla) (glad) * (desh) / i', použije sa PREG_UNMATCHED_AS_NULL. Ak sa ktorákoľvek časť vzoru nezhoduje, bude v poli uložená hodnota NULL. Hodnoty $ zápasy premenná sa vytlačí na základe výstupu druhej funkcie preg_match (). V tretej funkcii preg_match () sa ako vzor použije '/ glad /', hodnota príznaku, PREG_OFFSET_CAPTURE a ako hodnota posunu sa použije 3. Hodnoty $ zápasy premenná sa vytlačí na základe výstupu tretej funkcie preg_match ().

// Definujte textovú hodnotu
$ text = "Bangladéš";
// Definujte tri typy vzorov
$ pattern1 = '/ (bengálčina) (desh) / i';
$ pattern2 = '/ (bengálčina) (rád) * (desh) / i';
$ pattern3 = '/ glad /';
// Pomocou príznaku PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ match, PREG_OFFSET_CAPTURE);
ozvena “
";
print_r ($ zápasy);
ozvena “

";
// Pomocou príznaku PREG_UNMATCHED_AS_NULL
preg_match ($ pattern2, $ text, $ matchs, PREG_UNMATCHED_AS_NULL);
ozvena “
";
print_r ($ zápasy);
ozvena “

";
// Pomocou príznaku PREG_OFFSET_CAPTURE a hodnoty offsetu
preg_match ($ pattern3, $ text, $ zápasy, PREG_OFFSET_CAPTURE, 3);
ozvena “
";
print_r ($ zápasy);
ozvena “
";
?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Záver

Používanie funkcie preg_match () bolo v tejto príručke vysvetlené na niekoľkých príkladoch. Tiež tu bolo ukázané použitie rôznych argumentov tejto funkcie. Čitatelia budú môcť túto funkciu správne používať vo svojom skripte po prečítaní tohto tutoriálu.

Hry Top 10 hier, ktoré sa dajú hrať na Ubuntu
Top 10 hier, ktoré sa dajú hrať na Ubuntu
Platforma Windows je jednou z dominujúcich platforiem pre hry kvôli obrovskému percentu hier, ktoré sa dnes vyvíjajú na natívnu podporu systému Window...
Hry 5 najlepších arkádových hier pre Linux
5 najlepších arkádových hier pre Linux
V dnešnej dobe sú počítače vážne stroje používané na hranie hier. Ak nemôžete dosiahnuť nové najvyššie skóre, budete vedieť, čo tým myslím. V tomto pr...
Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...