Invertovanje skupova karaktera u regularnim izrazima
Pomoću znaka ^ na početku uglastih
zagrada možemo invertovati željeno. Odnosno,
ako, na primer, komanda [ab] traži
slovo 'a' ili 'b', onda komanda
[^ab] će tražiti sve karaktere, osim
'a' i 'b'.
Primer
U ovom primeru šablon za pretragu izgleda ovako:
slovo 'x', zatim NE slovo 'a',
ne 'b' i ne 'c', zatim slovo
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'xaz xbz xcz !'
Primer
U ovom primeru šablon za pretragu izgleda ovako:
slovo 'x', zatim NE malo latinično slovo,
zatim slovo 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'xaz xbz ! !'
Praktični zadaci
Napišite regularni izraz koji će pronaći stringove
po šablonu: cifra '1', zatim karakter
koji nije 'e' i nije 'x', cifra '2'.
Napišite regularni izraz koji će pronaći stringove
po šablonu: slovo 'x', zatim NE
cifra od 2 do 7, slovo 'z'.
Napišite regularni izraz koji će pronaći stringove
po šablonu: slovo 'x', zatim NE
veliko latinično slovo od 1 i više
puta, slovo 'z'.
Napišite regularni izraz koji će pronaći stringove
po šablonu: slovo 'x', zatim nije
veliko i nije malo latinično slovo i nije cifra
od 1 do 5 od 1 i više
puta, slovo 'z'.