Inversarea seturilor de caractere în expresii regulate
Folosind semnul circumflex ^ la începutul parantezelor pătrate
se poate inversa ceea ce este dorit. Adică,
dacă, de exemplu, comanda [ab] caută
litera 'a' sau 'b', atunci comanda
[^ab] va căuta toate caracterele, cu excepția
'a' și 'b'.
Exemplu
În acest exemplu, șablonul de căutare arată astfel:
litera 'x', apoi NU litera 'a',
nu 'b' și nu 'c', apoi litera
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Ca rezultat, în variabilă se va scrie următoarele:
'xaz xbz xcz !'
Exemplu
În acest exemplu, șablonul de căutare arată astfel:
litera 'x', apoi NU o literă latină
mică, apoi litera 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Ca rezultat, în variabilă se va scrie următoarele:
'xaz xbz ! !'
Probleme practice
Scrieți o expresie regulată care va găsi șirurile
după modelul: cifra '1', apoi caracterul
nu 'e' și nu 'x', cifra '2'.
Scrieți o expresie regulată care va găsi șirurile
după modelul: litera 'x', apoi NU
o cifră de la 2 la 7, litera 'z'.
Scrieți o expresie regulată care va găsi șirurile
după modelul: litera 'x', apoi NU
o literă latină mare de la 1 și mai mult
ori, litera 'z'.
Scrieți o expresie regulată care va găsi șirurile
după modelul: litera 'x', apoi nu
o literă latină mare și nu o literă latină mică și nu o cifră
de la 1 la 5 de la 1 și mai mult
ori, litera 'z'.