r8t17th
Pattern Modifiers -- Descrie modificatorii pentru pattern in expresii regulate
Descriere
Modificatorii PCRE sunt urmatorii. Numele din paranteza se refera la denumirile
interne din PCRE pentru modificatori.
i (PCRE_CASELESS)
Daca este setat acest modificator, literele din pattern se potrivesc atat
cu literele mari cat si cu cele mici.
m (PCRE_MULTILINE)
Implicit, PCRE trateaza sirul de intrare ca pe o singura linie (chiar daca de
fapt el contine mai multe linii). Meta-caracterul "de inceput de
linie" (^) se potriveste doar la inceputul sirului, pe cand
meta-caracterul "de sfarsit de linie" ($) se potriveste doar
la sfarsitul sirului, sau inainte de a se termina o linie (in
afara de cazul in care modificatorul E este setat). Este la fel ca in
Perl.
Cand acest modificator este setat, atunci se va tine seama de liniile
din sirul de intrare. Acesta este ekchivalent cu modificatorul \m din Perl.
Daca nu exista "\n" in sirul de intrare, sau ^ sau $ nu apar in
pattern, setarea acestui modificator nu are nici un efect.
s (PCRE_DOTALL)
Daca este setat acest modificator, un meta-caraacter punct in pattern
se va potrivi cu toate caracterele, inclusiv caracterul de linie noua. Fara
el, se considera o singura linie. Acest modificator este echivalent cu /s din
Perl. Negatia sa a^ai se potriveste intotdeauna cu caracterul de linie
noua, indiferent de setarile acestui modificator.
x (PCRE_EXTENDED)
Daca este setat acest modificator, spatiile albe din pattern sunt ignorate in
afara de cazul cand sunt securizate sau sunt in interiorul unei
clase caracter. Caracterele aflate dupa caracterul # nesecurizat din afara unei
clase caracter pana la sfarsit de linie, sunt de asemenea ignorate.
Modificatorul este echivalent cu /x din Perl, si face posibila includerea unor
comentarii in cadrul unor pattern-uri complicate. De remarcat, totusi,
ca se aplica doar datelor de tip caracter. Spatiile albe pot lipsi dintr-o secventa
de caractere speciale dintr-un pattern; de exemplu secventa (?( care introduce
un sub-pattern conditionat.
e
Daca este setat acest modificator, preg_replace() inlocuieste aparitii
ale \\ in sirul de inlocuit, interpreteaza codul PHP, iar rezultatul interpretarii
il foloseste pentru a face inlocuirile in string.
Doar preg_replace() foloseste acest modificator; el este ignorat daca e folosit
in alte functii PCRE.
A (PCRE_ANCHORED)
Daca este setat acest modificator, pattern este "ancorat"; este fortat
sa se potriveasca doar la inceputul string-ului in care se face
cautarea (sirul "subject"). Acest lucru se poate face si din interiorul
pattern; in Perl fiind unica posibilitate.
E (PCRE_DOLLAR_ENDONLY)
Daca este setat acest modificator, meta-caracterul dollar se potriveste doar
la sfarsitul string. Fara acest modificator, dollar se potriveste inainte
de ultimul caracter daca este newline (dar nu si inaintea altor newline).
Acest modificator este ignorat, daca modificatorul m este setat. Nu exista echivalentul
sau in Perl.
S
Daca un pattern este folosit de mai multe ori, ar fi indicat sa se analizeze
mai mult codul pentru a-l optimiza. Setarea acestui modificator face o astfel
de analiza. Momentan, studierea unui pattern are sens doar pentru pattern ne-"ancorate"
care nu au un unic caracter de start.
U (PCRE_UNGREEDY)
Acest modificator reduce din "lacomia" cuantificatorilor care pot
deveni astfel daca sunt urmati de "?". Nu este compatibil cu Perl.
Poate fi setat si in interiorul pattern prin (?U) .
X (PCRE_UNGREEDY)
Acest modificator face ca PCRE sa nu fie compatibil cu Perl. Orice backslash
dintr-un pattern urmat de o litera fara nici semnificatie produce o eroare.
Implicit, ca in Perl, orice backslash urmat de o litera fara nici o semnificatie
este ignorat.