Ký tự dấu mũ bên trong tập hợp trong biểu thức chính quy PHP
Như bạn đã biết, dấu mũ bên trong [] tạo ra
phủ định, khi được viết ở đầu dấu ngoặc.
Điều này có nghĩa, nó là một ký tự đặc biệt bên trong
những dấu ngoặc này. Để có được dấu mũ như một ký tự thông thường,
cần phải thoát nó hoặc đưa nó ra khỏi
vị trí đầu tiên.
Ví dụ
Trong ví dụ sau, mẫu tìm kiếm như sau:
ký tự đầu tiên - là tất cả ngoại trừ 'd',
sau đó là hai chữ cái 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Kết quả, biến sẽ được ghi giá trị như sau:
'! ! ! dxx'
Ví dụ
Và bây giờ mẫu tìm kiếm như sau: ký tự đầu tiên
- là 'd' hoặc '^', sau đó là hai
chữ cái 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Kết quả, biến sẽ được ghi giá trị như sau:
'axx bxx ! !'
Ví dụ
Có thể không cần đưa dấu mũ ra khỏi vị trí đầu tiên, mà chỉ cần thoát nó bằng dấu gạch chéo ngược, và nó sẽ biểu thị chính nó:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Kết quả, biến sẽ được ghi giá trị như sau:
'axx bxx ! !'
Bài tập thực hành
Cho một chuỗi:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Hãy viết biểu thức chính quy, tìm các chuỗi theo mẫu: dấu mũ hoặc dấu @, sau đó là hai chữ cái Latin.
Cho một chuỗi:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Hãy viết biểu thức chính quy, tìm các chuỗi theo mẫu: KHÔNG PHẢI dấu mũ và không phải dấu @, sau đó là hai chữ cái Latin.
Cho một chuỗi:
<?php
$str = '^xx axx ^zz bkk';
?>
Hãy viết biểu thức chính quy, tìm các chuỗi theo mẫu: KHÔNG PHẢI dấu mũ, sau đó là hai chữ cái Latin.