Undantag inuti uppsättningar i reguljära uttryck i PHP
Du vet redan att specialtecken inom []
blir vanliga tecken. Det finns dock
undantag: om du behöver hakparenteser
som tecken måste de escapeas med omvänt
snedstreck.
Som exempel, i följande kod ser sökmönstret ut så här: mellan x:en finns en hakparentes:
<?php
$str = 'x]x xax x[x x1x';
$res = preg_replace('#x[\[\]]x#', '!', $str);
?>
Som ett resultat kommer följande att skrivas till variabeln:
'! xax ! x1x'
Givet en sträng:
<?php
$str = 'x[]z x{}z x.z x()z';
?>
Skriv ett reguljärt uttryck som hittar alla ord
enligt mönstret: bokstaven 'x', sedan valfritt
antal av valfria parenteser, sedan bokstaven 'z'.
Givet en sträng:
<?php
$str = '[abc] {abc} abc (abc) [abc]';
?>
Skriv ett reguljärt uttryck som hittar strängar
i valfria parenteser och ersätter dem med '!'.