Invertering av tegnsett i regulære uttrykk
Ved hjelp av cirkumfleks ^ i starten av klammeparenteser kan du invertere ønsket. Det vil si,
hvis for eksempel kommandoen [ab] søker etter
bokstaven 'a' eller 'b', vil kommandoen
[^ab] søke etter alle tegn, unntatt
'a' og 'b'.
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
bokstaven 'x', deretter IKKE bokstaven 'a',
ikke 'b' og ikke 'c', deretter bokstaven
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Resultatet som skrives til variabelen blir følgende:
'xaz xbz xcz !'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
bokstaven 'x', deretter IKKE en liten latinsk
bokstav, deretter bokstaven 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Resultatet som skrives til variabelen blir følgende:
'xaz xbz ! !'
Praktiske oppgaver
Skriv et regulært uttrykk som finner strenger
etter mønsteret: siffer '1', deretter et tegn
som ikke er 'e' og ikke 'x', siffer '2'.
Skriv et regulært uttrykk som finner strenger
etter mønsteret: bokstaven 'x', deretter IKKE
et siffer fra 2 til 7, bokstaven 'z'.
Skriv et regulært uttrykk som finner strenger
etter mønsteret: bokstaven 'x', deretter IKKE
en stor latinsk bokstav fra 1 eller flere
ganger, bokstaven 'z'.
Skriv et regulært uttrykk som finner strenger
etter mønsteret: bokstaven 'x', deretter ikke
en stor eller liten latinsk bokstav og ikke et siffer
fra 1 til 5 fra 1 eller flere
ganger, bokstaven 'z'.