Ký tự đặc biệt bên trong dấu ngoặc vuông trong PHP
Các ký tự đặc biệt bên trong [] trở thành các ký tự
thông thường. Điều này có nghĩa là chúng không cần phải được
thoát bằng dấu gạch chéo ngược.
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này:
giữa các chữ 'x' là bất kỳ chữ cái 'a', 'b',
'c', hoặc dấu chấm:
<?php
$str = 'xax xbx xcx xdx x.x x@x';
$res = preg_replace('#x[abc.]x#', '!', $str);
?>
Kết quả, biến sẽ ghi lại nội dung sau:
'! ! ! xdx ! x@x'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này: giữa các chữ 'x' là bất kỳ chữ cái Latinh viết thường hoặc dấu chấm:
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z.]x#', '!', $str);
?>
Kết quả, biến sẽ ghi lại nội dung sau:
'! ! ! x@x'
Bài tập thực hành
Cho chuỗi:
<?php
$str = 'aba aea aca aza axa a.a a+a a*a';
?>
Hãy viết biểu thức chính quy tìm các chuỗi
'a.a', 'a+a', 'a*a',
không ảnh hưởng đến các chuỗi khác.
Cho chuỗi:
<?php
$str = 'xaz x.z x3z x@z x$z xrz';
?>
Hãy viết biểu thức chính quy tìm các chuỗi
theo mẫu: chữ cái 'x', sau đó KHÔNG PHẢI
dấu chấm, KHÔNG PHẢI dấu @, và KHÔNG PHẢI dấu đô la, rồi đến chữ cái
'z'.