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<?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:

php'! xax ! x1x'
Задание 1

Cho chuỗi:

php<?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'.

Задание 2

Cho chuỗi:

php<?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 '!'.