..


Rėmėjų nuorodos

PCRE reguliaraus išraiška funkcijas (ir skirtumus su POSIX funkcijos)

Straipsnį parašė Max Bossi
Puslapis 1 iš 4

Mes turėjome jau užsiminė, pastarosiomis dienomis per mūsų interneto dienoraštyje puslapių, tačiau šiandien aš norėčiau išnagrinėti temą, kad aš manau, bus naudinga tūkstančiams kūrėjų - panašus į mane - kiekvieną dieną naudoti PHP plėtoti interneto programų.

Nuo PHP 5,3 versija, iš tikrųjų, kūrėjai, kurie nori išnaudoti reguliarios išraiškos potencialas nebegali pasinaudoti POSIX funkcijas (taip sakant ereg () ir šeimos), bet turi, būtinai, naudokite funkcijas PCRE (Perl Compatible Regular išraiškas), pavyzdžiui, preg_match () .

PCRE funkcijų pastatytas į PHP leidžia naudoti tipiškas reguliaraus išraiška Perl sintaksę (tiksliau tariant, dabartinį įgyvendinimą teikia paramą Perl 5,005 sintaksė), kuri šiek tiek skiriasi nuo POSIX funkcijas. Norėdami gauti daugiau informacijos apie PCRE sintaksę galima konsultuotis vadovą galima rasti oficialioje svetainėje PCRE.org.

Palyginimai: preg_match ()

Jei norite, kad tarp styginių ir modelis (modelis parašyta reguliarios išraiškos forma) palyginimas reikės naudoti preg_match (), kad iš tikrųjų pakeisti ereg () ir eregi ().

Naudojant preg_match () yra bendro naudojimo, gana paprasta: jūs praeiti funkcijos modelio ir styginių patikrinti. Jei modelis yra įsitikinusi, funkcija grąžina 1, jei 0 (arba FALSE, jei klaida).

Iš tikrųjų migruoja iš ereg () nėra sudėtingas dalykas. Jums reikės kai šiek tiek išradingumo į modelio kūrimą.

Štai pavyzdys:

 



 <? PHP







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



  



 echo "Rasta";







 Else {}



  



 echo "nerastas";







 }







 ?>

 
Tai yra ta pati:
 



 <? PHP







 if (eregi ("mrwebmaster", "Tegyvuoja MrWebmaster!")) {



  



 echo "Rasta";







 Else {}



  



 echo "nerastas";







 }







 ?>

 

Mūsų paprastas pavyzdys naudoti preg_match () mes naudojome eilutę kaip modelis

 



 / Mrwebmaster / s

 
Pažiūrėkime, sintaksę:
  • / ... / - Atriboti pradžioje ir išraiškos pabaigos;
  • mrwebmaster - tai paprasta eilutė, kuri norite patikrinti tekstą priimtas kaip antrasis argumentas;
  • I - "i" po uždarymo skirtukas rodo, kad paieškos turi būti ne didžiosios ir mažosios raidės (kaip buvo padaryta naudojant funkciją eregi ()). Techniškai tai "aš" yra modifikatorius, į šį puslapį pilnas sąrašas modifikatorius leidžiama į PCRE sintaksė.

Su ereg skirtumą ()

Kaip matote su ereg skirtumas () nėra daug, tegul juos apibendrinti trumpai:

  • naudoti skirtukus / ... / (iš tikrųjų galite naudoti kitokių simbolių, kaip skyriklis, bet velniop yra įprastas pasirinkimas);
  • didžiųjų ir mažųjų raidžių versija (eregi ()) pakeičiama "i" po uždarymo skyriklis naudojimą;
  • charakterio / į modeliui reikės (jei naudojami velniop kaip skyriklis) pabėgti (\ /), kad neturi būti painiojama su skirtukus;
  • Yra keletas nedidelių skirtumų į ASCII simbolius valdymas (POSIX funkcijų, skirtingai nei PCRE priimti skaičių ASCII simboliai: pvz. Atitinka skaičių 10 ir 13 naują eilutę grįžimo; atvirkščiai su PCRE funkcijas 10 rodo tik skaičius dešimt).
  • funkcija ereg () priima tik trys parametrai (modelis, tekstas būtų patikrintas ir, pasirinktinai, masyvo laikyti rezultatus) ir preg_match () prisipažįsta penkių (pirmieji du, jau matėme, yra reikalaujama, kitos trys yra neprivaloma );

Remiantis pirmiau išdėstytais faktais (ir skirtumus, kurie buvo minėta), mes galime svarstyti iš naujo (iš dalies) galioja teoriniai paaiškinimai apie reguliarios išraiškos sintaksę galima rasti šiame puslapyje Straipsnio "Regular Expressions" PHP ", skirtas senųjų POSIX funkcijas .

Tos pačios kategorijos ...
E-mokymasis
"Linux" (kurso) "Linux" (kurso)
Užbaigti vadovą, kad atviro kodo sistema. Nuo 49 €.
MySQL (kurso) MySQL (kurso)
Valdymas atviro kodo duomenų bazės. Nuo 39 €.
PHP (kurso) PHP (kurso)
Visas kursas sukurti dinaminius interneto svetainių. Nuo 49 €.
Rėmėjų nuorodos