Exceptions dans les ensembles des expressions régulières en PHP
Vous savez déjà que les métacaractères à l'intérieur de []
deviennent des caractères ordinaires. Il existe cependant
des exceptions : si vous avez besoin des crochets
comme caractères, vous devez les échapper avec un
barre oblique inversée.
Par exemple, dans le code suivant, le modèle de recherche est le suivant : entre les x se trouve un crochet :
<?php
$str = 'x]x xax x[x x1x';
$res = preg_replace('#x[\[\]]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'! xax ! x1x'
Soit une chaîne :
<?php
$str = 'x[]z x{}z x.z x()z';
?>
Écrivez une expression régulière qui trouvera tous les mots
selon le modèle : lettre 'x', puis n'importe quelle
quantité de n'importe quelles parenthèses, puis lettre 'z'.
Soit une chaîne :
<?php
$str = '[abc] {abc} abc (abc) [abc]';
?>
Écrivez une expression régulière qui trouvera les chaînes
dans n'importe quelles parenthèses et les remplacera par '!'.