Hầu hết tất cả các siêu ký tự (bao gồm cả dấu chấm .
, +
, *
và ?
bộ định lượng, ký tự neo cuối chuỗi $
, v.v.) không có ý nghĩa đặc biệt trong các lớp ký tự, với một số ngoại lệ đáng chú ý:
- dấu ngoặc đóng
]
, vì những lý do rõ ràng - dấu mũ
^
, được sử dụng để phủ định lớp ký tự (ví dụ:[^ab]
khớp với bất kỳ ký tự nào buta
vàb
). - gạch nối
-
, được sử dụng để biểu thị một phạm vi (ví dụ:[0-9]
khớp với bất kỳ chữ số nào)
Tuy nhiên, chúng vẫn có thể được thêm vào mà không bị thoát nếu được đặt ở các vị trí chiến lược trong lớp nhân vật:
- dấu ngoặc đóng có thể được đặt ngay sau dấu ngoặc mở, ví dụ:
[]a]
khớp với]
hoặca
. - dấu mũ có thể được đặt ở bất kỳ đâu nhưng sau dấu ngoặc mở, ví dụ:
[a^]
khớp với^
hoặca
- dấu gạch nối có thể được đặt ngay sau dấu ngoặc mở hoặc trước dấu ngoặc đóng, ví dụ:
[-a]
và[a-]
cả hai đều khớp vớia
và-
.
Bạn có thể tìm thấy thêm thông tin trong trang người đàn ông trên POSIX regex
(cảm ơn Tomalak Geret'kal!)