Exceções dentro de conjuntos em expressões regulares no PHP
Você já sabe que os metacaracteres dentro de []
se tornam caracteres comuns. No entanto, existem
exceções: se você precisar de colchetes
como caracteres, eles precisam ser escapados com uma barra invertida.
Por exemplo, no seguinte código, o padrão de busca é assim: entre os 'x' há um colchete:
<?php
$str = 'x]x xax x[x x1x';
$res = preg_replace('#x[\[\]]x#', '!', $str);
?>
Como resultado, o seguinte será armazenado na variável:
'! xax ! x1x'
Dada a string:
<?php
$str = 'x[]z x{}z x.z x()z';
?>
Escreva uma expressão regular que encontre todas as palavras
seguindo o padrão: letra 'x', depois qualquer
quantidade de qualquer tipo de colchetes, depois a letra 'z'.
Dada a string:
<?php
$str = '[abc] {abc} abc (abc) [abc]';
?>
Escreva uma expressão regular que encontre as strings
dentro de quaisquer colchetes e as substitua por '!'.