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