Regulární výraz / regulární výraz PHP: preg_match () - preg_replace ()

Obsah:

Anonim

Co je regulární výraz v PHP?

Pravidelný výraz PHP, známý také jako regex, je výkonný algoritmus porovnávání vzorů, který lze provést v jediném výrazu. Regulární výrazy používají k vytváření složitých výrazů aritmetické operátory, jako je (+, -, ^). Mohou vám pomoci splnit úkoly, jako je ověřování e-mailových adres, IP adres atd.

Proč používat regulární výrazy

  • Regulární výrazy PHP zjednodušují identifikaci vzorců v řetězcových datech voláním jedné funkce. To nám šetří čas při programování.
  • Při ověřování vstupu uživatele, jako je e-mailová adresa, názvy domén, telefonní čísla, IP adresy,
  • Zvýraznění klíčových slov ve výsledcích vyhledávání
  • Při vytváření vlastní šablony HTML. Regex v PHP lze použít k identifikaci značek šablon a jejich nahrazení skutečnými daty.

V tomto výukovém programu PHP Regex se naučíte:

  • Integrované funkce regulárních výrazů v PHP
  • Preg_match PHP ()
  • PHP Preg_split ()
  • Preg_replace PHP ()
  • Metaznaky s regulárním výrazem
  • Vysvětlení vzoru

Integrované funkce regulárních výrazů v PHP

PHP má zabudované funkce, které nám umožňují pracovat s běžnými funkcemi, které se naučíme v tomto tutoriálu PHP Regulární výrazy. Podívejme se na běžně používané funkce regulárních výrazů v PHP.

  • preg_match () v PHP - tato funkce se používá k provádění porovnávání vzorů v PHP na řetězci. Vrací true, pokud je nalezena shoda, a false, pokud shoda není nalezena.
  • preg_split () v PHP - tato funkce se používá k provedení shody vzoru na řetězci a následnému rozdělení výsledků do číselného pole
  • preg_replace () v PHP - tato funkce se používá k provedení shody vzoru na řetězci a následnému nahrazení shody zadaným textem.

Níže je uvedena syntaxe funkce regulárního výrazu, jako je PHP preg_match (), PHP preg_split () nebo PHP preg_replace ().

TADY,

  • „název_funkce (…)“ je buď PHP preg_match (), PHP preg_split () nebo PHP preg_replace ().
  • „/… /“ Přední lomítka označují začátek a konec naší funkce testeru PHP regex
  • „„ / vzor / ““ je vzor, ​​který potřebujeme porovnat
  • „subject“ je textový řetězec, který má být porovnán

Podívejme se nyní na praktické příklady, které implementují výše uvedené funkce regexu PHP.

Preg_match PHP ()

První příklad používá funkci preg_match () ve funkci PHP k provedení jednoduché shody vzoru pro slovo guru v dané adrese URL.

Níže uvedený kód ukazuje implementaci funkce testeru preg_match () pro výše uvedený příklad.

Přejděte na adresu URL http: //localhost/phptuts/preg_match_simple.php

Prozkoumejme část kódu zodpovědnou za náš výstup "preg_match ('/ guru /', $ my_url)" ZDE,

  • „preg_match (…)“ je funkce PHP regex
  • „„ / guru / ““ je vzor regulárního výrazu, který má být přiřazen
  • „$ my_url“ je proměnná obsahující text, který má být porovnán.

Níže uvedený diagram shrnuje výše uvedené body

PHP Preg_split ()

Podívejme se nyní na další příklad, který používá funkci preg_split () ve funkci PHP.

Vezmeme řetězovou frázi a rozložíme ji do pole; vzor, ​​který má být porovnán, je jeden prostor.

Textový řetězec, který se má v tomto příkladu použít, je „Miluji regulární výrazy“.

Níže uvedený kód ilustruje implementaci výše uvedeného příkladu.

Přejděte na adresu URL http: //localhost/phptuts/preg_split.php

Preg_replace PHP ()

Podívejme se nyní na preg_replace () ve funkci PHP, která provádí shodu vzorů a poté nahradí vzor něčím jiným.

Níže uvedený kód vyhledává slovo guru v řetězci.

Nahrazuje slovo guru slovem guru obklopené css kódem, který zvýrazňuje barvu pozadí.

Za předpokladu, že jste uložili soubor preg_replace.php, prohlížeč na URL http: //localhost/phptuts/preg_replace.php

Metaznaky s regulárním výrazem

Výše uvedené příklady používaly velmi základní vzory; metaznaky nám jednoduše umožňují provádět složitější shody vzorů, jako je test platnosti e-mailové adresy. Pojďme se nyní podívat na běžně používané metaznaky.

Metacharakter Popis Příklad
. Odpovídá libovolnému jednomu znaku kromě nového řádku /./ odpovídá všemu, co má jeden znak
^ Odpovídá začátku nebo řetězci / vylučuje znaky / PH / odpovídá libovolnému řetězci začínajícímu na PH
$ Odpovídá vzoru na konci řetězce / com $ / odpovídá guru99.com, yahoo.com atd.
* Odpovídá libovolným nulovým (0) nebo více znakům / com * / odpovídá počítači, komunikaci atd.
+ Vyžaduje předchozí znak (y) se objeví alespoň jednou / yah + oo / odpovídá yahoo
\ Používá se k úniku meta znaků /yahoo+\.com/ považuje tečku za doslovnou hodnotu
[…] Třída znaků / [abc] / odpovídá abc
az Shoduje se s malými písmeny / az / zápasy cool, šťastný atd.
AZ Shoduje se s velkými písmeny / AZ / odpovídá CO, JAK, PROČ atd.
0-9 Odpovídá libovolnému číslu mezi 0 a 9 / 0-4 / odpovídá 0,1,2,3,4

Výše uvedený seznam uvádí v regulárních výrazech pouze nejčastěji používané metaznaky.

Podívejme se nyní na poměrně složitý příklad, který kontroluje platnost e-mailové adresy.

Vysvětlení vzoru „[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] "

TADY,

  • „„ /… / “Začíná a končí regulární výraz
  • „[a-zA-Z0-9 ._-]“ odpovídá jakémukoli malému nebo velkému písmenu, číslům od 0 do 9 a tečkám, podtržítkům nebo pomlčkám.
  • „+ @ [a-zA-Z0-9-]“ odpovídá symbolu @ následovanému malými nebo velkými písmeny, číslicemi od 0 do 9 nebo pomlčkami.
  • „+ \. [a-zA-Z.] {2,5} $ /" unikne tečce pomocí zpětného lomítka a poté na konci řetězce porovná všechna malá nebo velká písmena s délkou znaků mezi 2 a 5.

Přejděte na adresu URL http: //localhost/phptuts/preg_match.php

Jak můžete vidět z výše uvedeného příkladu rozdělení, metaznaky jsou velmi silné, pokud jde o shodu vzorů.

souhrn

  • Regulární výraz nebo regulární výraz v PHP je algoritmus shody vzorů
  • Regulární výrazy jsou velmi užitečné při provádění ověřovacích kontrol, vytváření systémů šablon HTML, které rozpoznávají značky atd.
  • PHP má zabudované funkce, jmenovitě PHP preg_match (), PHP preg_split () a PHP preg_replace (), které podporují regulární výrazy.
  • Metaznaky nám umožňují vytvářet složité vzory