Inverteren van karaktersets in reguliere expressies
Met het dakje ^ aan het begin van vierkante
haken kun je het gewenste inverteren. Dat wil zeggen,
als bijvoorbeeld het commando [ab] zoekt naar
de letter 'a' of 'b', dan zal het commando
[^ab] alle karakters zoeken, behalve
'a' en 'b'.
Voorbeeld
In dit voorbeeld ziet het zoekpatroon er als volgt uit:
letter 'x', dan GEEN letter 'a',
geen 'b' en geen 'c', vervolgens letter
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Als resultaat wordt het volgende in de variabele geschreven:
'xaz xbz xcz !'
Voorbeeld
In dit voorbeeld ziet het zoekpatroon er als volgt uit:
letter 'x', dan GEEN kleine Latijnse
letter, vervolgens letter 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Als resultaat wordt het volgende in de variabele geschreven:
'xaz xbz ! !'
Praktische opdrachten
Schrijf een reguliere expressie die strings vindt
volgens het patroon: cijfer '1', dan karakter
geen 'e' en geen 'x', cijfer '2'.
Schrijf een reguliere expressie die strings vindt
volgens het patroon: letter 'x', dan GEEN
cijfer van 2 tot 7, letter 'z'.
Schrijf een reguliere expressie die strings vindt
volgens het patroon: letter 'x', dan GEEN
hoofdletter Latijns letter van 1 en meer
keer, letter 'z'.
Schrijf een reguliere expressie die strings vindt
volgens het patroon: letter 'x', dan geen
hoofdletter en geen kleine letter Latijns en geen cijfer
van 1 tot 5 van 1 en meer
keer, letter 'z'.