Rakstzīmju kopu invertēšana regulārajās izteiksmēs
Izmantojot zīmi ^ kvadrātiekavu sākumā, var invertēt vēlamo. Tas ir,
ja, piemēram, komanda [ab] meklē
burtu 'a' vai 'b', tad komanda
[^ab] meklēs visas rakstzīmes, izņemot
'a' un 'b'.
Piemērs
Šajā piemērā meklēšanas veidne izskatās šādi:
burts 'x', tad NE burts 'a',
ne 'b' un ne 'c', pēc tam burts
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Rezultātā mainīgajā tiks ierakstīts sekojošais:
'xaz xbz xcz !'
Piemērs
Šajā piemērā meklēšanas veidne izskatās šādi:
burts 'x', tad NE mazais latīņu burts,
pēc tam burts 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Rezultātā mainīgajā tiks ierakstīts sekojošais:
'xaz xbz ! !'
Praktiskie uzdevumi
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
pēc veidnes: cipars '1', tad rakstzīme
ne 'e' un ne 'x', cipars '2'.
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
pēc veidnes: burts 'x', tad NE
cipars no 2 līdz 7, burts 'z'.
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
pēc veidnes: burts 'x', tad NE
lielais latīņu burts no 1 un vairāk
reizes, burts 'z'.
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
pēc veidnes: burts 'x', tad ne
lielais un ne mazais latīņu burts un ne cipars
no 1 līdz 5 no 1 un vairāk
reizes, burts 'z'.