Ngoại lệ bên trong tập hợp trong biểu thức chính quy PHP
Bạn đã biết rằng các ký tự đặc biệt bên trong []
trở thành các ký tự thông thường. Tuy nhiên, có những
ngoại lệ: nếu bạn cần dấu ngoặc vuông
như các ký tự, thì chúng cần được thoát bằng dấu gạch chéo ngược.
Ví dụ, trong đoạn mã sau, mẫu tìm kiếm trông như thế này: giữa các chữ 'x' là một dấu ngoặc vuông:
<?php
$str = 'x]x xax x[x x1x';
$res = preg_replace('#x[\[\]]x#', '!', $str);
?>
Kết quả, biến sẽ ghi lại nội dung sau:
'! xax ! x1x'
Cho chuỗi:
<?php
$str = 'x[]z x{}z x.z x()z';
?>
Viết biểu thức chính quy tìm tất cả các từ
theo mẫu: chữ cái 'x', sau đó là bất kỳ số lượng
dấu ngoặc bất kỳ nào, sau đó là chữ cái 'z'.
Cho chuỗi:
<?php
$str = '[abc] {abc} abc (abc) [abc]';
?>
Viết biểu thức chính quy tìm các chuỗi
trong bất kỳ dấu ngoặc nào và thay thế chúng bằng '!'.