Sümbolikomplektide inverteerimine regulaaravaldistes
Kandiliste sulgude alguses oleva katusmärgi ^ abil saab soovitud vastupidiseks pöörata. See tähendab, et kui näiteks käsk [ab] otsib tähte 'a' või 'b', siis käsk [^ab] otsib kõiki sümboleid peale 'a' ja 'b'.
Näide
Selles näites näeb otsimismust välja järgmine:
täht 'x', seejärel MITTE täht 'a',
mitte 'b' ega 'c', seejärel täht
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'xaz xbz xcz !'
Näide
Selles näites näeb otsimismust välja järgmine:
täht 'x', seejärel MITTE väike ladina
täht, seejärel täht 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'xaz xbz ! !'
Praktilised ülesanded
Kirjutage regulaaravaldis, mis leiab stringid
vastavalt mustrile: number '1', seejärel sümbol
mitte 'e' ega 'x', number '2'.
Kirjutage regulaaravaldis, mis leiab stringid
vastavalt mustrile: täht 'x', seejärel MITTE
number vahemikust 2 kuni 7, täht 'z'.
Kirjutage regulaaravaldis, mis leiab stringid
vastavalt mustrile: täht 'x', seejärel MITTE
suur ladina täht 1 või rohkem
korda, täht 'z'.
Kirjutage regulaaravaldis, mis leiab stringid
vastavalt mustrile: täht 'x', seejärel mitte
suur ega väike ladina täht ega number
vahemikust 1 kuni 5 1 või rohkem
korda, täht 'z'.