Regulární výrazy - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



PHP

Regulární výrazy

4. května 1999, 00.00 | Rychlé seznámení s možnostmi regulárních výrazů v PHP..

V jednom emailu jsem se setkal s dotazem, proč je v PHP tak slabá podpora operací s řetězci, hlavně se jednalo o vyhledávání podstringů ap.
Osobně si myslím, že opak je pravdou. Na rozdíl od ANSI C, ze kterého by se dalo říci že PHP vychází, má PHP implementováno velké množství funkcí pro práci s řetězci.

Ovšem, musíte se trochu odprostit od zažitých pravidel. Chcete-li zjistit přítomnost podstringu v řetězci, můžete použít strstr, ale takový ereg je přeci jenom účinější.

Ano řeč dnes bude o regulárních výrazech, jenž klasické C, narozdíl např. od Perlu, nezná.

Krátce v praktických ukázkách:

ereg("abc",$s); 
/*vrátí true, jestliže $s obsahuje "abc"*/

ereg("^abc",$s);
/*vrátí true, pokud je "abc" na počátku $s*/

ereg("abc$",$s);
/*true, je-li "abc" na konci $s*/

Pokud máte zkušenost s psaním v C, možná namítnete proč takové složitosti, když bychom mohli použít:

strstr(s,"abc")?1:0;
strncmp(s,"abc",3)?0:1;
strcmp(s-3,"abc")?0:1;

Ok, postoupíme dále..


eregi("(data[123]|abc)",$s);
/*vrátí true, když $s obsahuje "data1", "data2" nebo "data3"
 a nebo "abc"*/

ereg_replace("^","Dulezite: ",$s);
/*Vloží "Dulezite: " na začátek $s (ekv. "$" na konec)*/

ereg_replace("\n","
",$s); /*všechny entery nahradí za
*/

.. což by se v C tak lehce nerealizovalo :)
Pravdou je, že možnosti jsou ještě daleko větší a vřele doporučuji prostudovat manuál.

Tématické zařazení:

 » Rubriky  » PHP  

 » Rubriky  » Web  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: