..


Sponzorirani linkovi

PCRE regularni izraz funkcije (i razlike s POSIX funkcije)

Članak je napisao Max Bossi
Stranica 1 od 4

Imali smo već dao naslutiti u posljednjih nekoliko dana kroz stranice našeg bloga, ali danas bih htio istražiti temu i vjerujem da će biti od interesa za tisuće programera - poput mene - svaki dan koristiti PHP da razviju svoje web aplikacija.

Počevši s verzijom 5,3 PHP, u stvari, programere koji žele iskoristiti potencijal regularnih izraza više ne može koristiti POSIX funkcija (da tako kažemo ereg () i obitelj), ali se mora, nužno, koristite funkcije PCRE (Perl Compatible Regular Izrazi), na primjer, preg_match () .

The PCRE funkcije ugrađene u PHP vam omogućiti da koristite tipična regularni izraz sintaksu Perl (točnije, trenutno provedbu pruža podršku sintaksa Perl 5,005), što je nešto drugačiji od onog u POSIX funkcija. Za više informacija o sintaksa PCRE moguće je konzultirati priručnik dostupan je na službenim stranicama PCRE.org.

Usporedbe: preg_match ()

Ako želite napraviti usporedbu između niza i uzorak (model pisani u obliku regularnih izraza) će morati koristiti preg_match () koji, u stvari, zamijeniti ereg () i eregi ().

Korištenje preg_match () je zajedničko korištenje, vrlo jednostavan: proći funkciju obrazac i niz provjeriti. Ako je uzorak zadovoljan, funkcija vraća 1 ako je 0 (ili FALSE ako je greška).

U stvari seliti iz ereg () nije komplicirano stvar. Trebat će vam nešto malo genijalnost u formuliranju uzorak.

Evo primjer:

 



 <? PHP







 if (preg_match ("/ mrwebmaster / i ',' Živio MrWebmaster! ')) {



  



 echo "Found";







 Else {}



  



 echo "nije pronađen";







 }







 ?>

 
To je isti:
 



 <? PHP







 if (eregi ('mrwebmaster', 'Živio MrWebmaster!')) {



  



 echo "Found";







 Else {}



  



 echo "nije pronađen";







 }







 ?>

 

U našem jednostavan primjer korištenja preg_match () koristili smo niz kao uzorak

 



 / Mrwebmaster / s

 
Pogledajmo sintaksa:
  • / ... / - Ograničavaju na početku i na kraju izražavanja;
  • mrwebmaster - je jednostavan niz koji želite provjeriti tekst prošao kao drugi argument;
  • I - "ja", nakon zatvaranja graničnik pokazuje da pretraživanje ne bi trebao biti velika i mala slova (kao što je učinjeno pomoću funkcije eregi ()). Tehnički taj "ja" je modifikator, u ovoj stranici , za cijeli popis modifikatori dozvoljeno u sintaksu PCRE.

Razlika u odnosu na ereg ()

Kao što možete vidjeti razlika u odnosu na ereg () nisu puno, neka je njima sažeti u nekoliko riječi:

  • korištenje razdvojnike / ... / (zapravo možete koristiti i druge znakove kao graničnik, ali udarac je uobičajeni izbor);
  • slučajeva neosjetljiv verzija (eregi ()) zamijenjen je korištenje "ja", nakon zatvaranja graničnik;
  • prisutnost lika / u obrascu zahtijevat će (ako se koristi za udarac kao delimiter) bijeg (\ /) kako ne treba brkati s razdvojnike;
  • Postoje neke manje razlike u upravljanju ASCII znakova (POSIX funkcije, za razliku od PCRE prihvatiti numerički ASCII znakova:. Primjerice, odgovara broju 10 i 13 novih linija prijevozu vratiti, i obrnuto s PCRE funkcije 10 predstavlja isključivo broj deset).
  • funkcija ereg () prihvaća samo tri parametra (uzorak, tekst koji će biti provjereni i, opcionalno, polje držati rezultatima) i preg_match () priznaje pet (prva dva, već smo vidjeli, su potrebne, ostale tri su po izboru );

Na temelju gore navedene (i razlike koje su navedene), možemo razmotriti opet (djelomice) vrijedi teorijska objašnjenja o sintaksu regularnih izraza može se naći na ovoj stranici u članku "regularni izrazi u PHP-u", posvećena starim POSIX funkcija .

U istoj kategoriji ...
E-učenje
Linux (tečaj) Linux (tečaj)
Kompletan vodič za open-source sustava. Od 49 €.
MySQL (tečaj) MySQL (tečaj)
Upravljanje open-source baza podataka. Od 39 €.
PHP (tečaj) PHP (tečaj)
Cijeli tečaj za izradu dinamičkih Web stranica. Od 49 €.
Sponzorirani linkovi