Invertering af tegnsæt i regulære udtryk
Ved hjælp af hatten ^ i starten af firkantede
parenteser kan du invertere det ønskede. Det vil sige,
hvis for eksempel kommandoen [ab] søger efter
et bogstav 'a' eller 'b', så vil kommandoen
[^ab] søge efter alle tegn undtagen
'a' og 'b'.
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
bogstav 'x', derefter IKKE bogstavet 'a',
ikke 'b' og ikke 'c', derefter bogstav
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Resultatet i variablen vil være følgende:
'xaz xbz xcz !'
Eksempel
I dette eksempel ser søgemønsteret sådan ud:
bogstav 'x', derefter IKKE et lille latinsk bogstav,
derefter bogstav 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Resultatet i variablen vil være følgende:
'xaz xbz ! !'
Praktiske opgaver
Skriv et regulært udtryk, der finder strenge
efter mønsteret: ciffer '1', derefter et tegn
som ikke er 'e' og ikke 'x', ciffer '2'.
Skriv et regulært udtryk, der finder strenge
efter mønsteret: bogstav 'x', derefter IKKE
et ciffer fra 2 til 7, bogstav 'z'.
Skriv et regulært udtryk, der finder strenge
efter mønsteret: bogstav 'x', derefter IKKE
et stort latinsk bogstav fra 1 og derover
gange, bogstav 'z'.
Skriv et regulært udtryk, der finder strenge
efter mønsteret: bogstav 'x', derefter ikke
et stort eller lille latinsk bogstav og ikke et ciffer
fra 1 til 5 fra 1 og derover
gange, bogstav 'z'.