Đảo ngược tập ký tự trong regex
Sử dụng dấu mũ ^ ở đầu dấu ngoặc vuông
có thể đảo ngược mong muốn. Tức là,
nếu, ví dụ, lệnh [ab] tìm
chữ cái 'a' hoặc 'b', thì lệnh
[^ab] sẽ tìm tất cả các ký tự, ngoại trừ
'a' và 'b'.
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này:
chữ cái 'x', sau đó KHÔNG PHẢI chữ cái 'a',
không phải 'b' và không phải 'c', rồi chữ cái
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Kết quả trong biến sẽ được ghi như sau:
'xaz xbz xcz !'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm trông như thế này:
chữ cái 'x', sau đó KHÔNG PHẢI chữ cái latinh thường,
rồi chữ cái 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Kết quả trong biến sẽ được ghi như sau:
'xaz xbz ! !'
Bài tập thực hành
Viết biểu thức chính quy tìm các chuỗi
theo mẫu: số '1', sau đó ký tự
không phải 'e' và không phải 'x', số '2'.
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
số từ 2 đến 7, chữ cái 'z'.
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
chữ cái latinh hoa từ 1 lần trở lên,
chữ cái 'z'.
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
chữ cái latinh hoa và không phải chữ cái latinh thường và không phải số
từ 1 đến 5 từ 1 lần trở lên,
chữ cái 'z'.