Inversione di set di caratteri nelle regex
Utilizzando il simbolo ^ all'inizio delle parentesi quadre
puoi invertire il desiderato. Cioè,
se, per esempio, il comando [ab] cerca
la lettera 'a' o 'b', allora il comando
[^ab] cercherà tutti i caratteri, eccetto
'a' e 'b'.
Esempio
In questo esempio il modello di ricerca è il seguente:
lettera 'x', poi NON lettera 'a',
non 'b' e non 'c', poi lettera
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Di conseguenza nella variabile verrà scritto quanto segue:
'xaz xbz xcz !'
Esempio
In questo esempio il modello di ricerca è il seguente:
lettera 'x', poi NON lettera latina minuscola,
poi lettera 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Di conseguenza nella variabile verrà scritto quanto segue:
'xaz xbz ! !'
Compiti pratici
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: cifra '1', poi carattere
non 'e' e non 'x', cifra '2'.
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: lettera 'x', poi NON
cifra da 2 a 7, lettera 'z'.
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: lettera 'x', poi NON
lettera latina maiuscola da 1 e più
volte, lettera 'z'.
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: lettera 'x', poi non
lettera latina maiuscola e non minuscola e non cifra
da 1 a 5 da 1 e più
volte, lettera 'z'.