Invertering av teckenuppsättningar i reguljära uttryck
Med hjälp av cirkumflex ^ i början av hakparenteser
kan man invertera det önskade. Det betyder
att om till exempel kommandot [ab] söker efter
bokstaven 'a' eller 'b', så kommer kommandot
[^ab] att söka efter alla tecken utom
'a' och 'b'.
Exempel
I detta exempel ser sökmönstret ut så här:
bokstaven 'x', sedan INTE bokstaven 'a',
inte 'b' och inte 'c', sedan bokstaven
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Som ett resultat kommer följande att skrivas in i variabeln:
'xaz xbz xcz !'
Exempel
I detta exempel ser sökmönstret ut så här:
bokstaven 'x', sedan INTE en liten latinsk
bokstav, sedan bokstaven 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Som ett resultat kommer följande att skrivas in i variabeln:
'xaz xbz ! !'
Praktiska uppgifter
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: siffran '1', sedan ett tecken
som inte är 'e' och inte 'x', siffran '2'.
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: bokstaven 'x', sedan INTE
en siffra från 2 till 7, bokstaven 'z'.
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: bokstaven 'x', sedan INTE
en stor latinsk bokstav från 1 och fler
gånger, bokstaven 'z'.
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: bokstaven 'x', sedan inte
en stor eller liten latinsk bokstav och inte en siffra
från 1 till 5 från 1 och fler
gånger, bokstaven 'z'.