Để tạo biểu thức chính quy, bạn phải sử dụng cú pháp cụ thể, tức là các ký tự đặc biệt và quy tắc cấu trúc. Ví dụ: sau đây là một biểu thức chính quy đơn giản khớp với mọi số điện thoại gồm 10 chữ số, theo mẫu nnn-nnn-nnnn:
\d{3}-\d{3}-\d{4}
Bảng sau đây mô tả một số ký tự đặc biệt phổ biến nhất để sử dụng trong biểu thức chính quy. Các ký tự này được phân loại như sau:
| Ký tự | Mô tả |
|---|---|
| Anchors | |
| ^ | (dấu mũ) Khớp với phần đầu của dòng hoặc chuỗi văn bản mà biểu thức chính quy đang tìm kiếm. Ví dụ: quy tắc nội dung có dòng tiêu đề Vị trí và biểu thức chính quy sau đây: ^abc sẽ ghi lại mọi thư có dòng tiêu đề bắt đầu bằng các chữ cái abc |
| $ | (đô la) Khớp với cuối dòng hoặc chuỗi văn bản mà biểu thức chính quy đang tìm kiếm. Ví dụ: quy tắc nội dung có dòng tiêu đề vị trí và biểu thức chính quy sau: xyz$ sẽ ghi lại mọi thư điện tử có dòng tiêu đề kết thúc bằng các chữ cái xyz |
| Ký tự đặc biệt | |
| . | (dấu chấm) Khớp với một ký tự bất kỳ, ngoại trừ dòng mới. |
| | | (dấu gạch dọc) Cho biết sự thay thế, tức là "hoặc". Ví dụ: cat|dog khớp với từ cat hoặc dog |
| \ | Cho biết rằng ký tự tiếp theo là một ký tự theo nghĩa đen chứ không phải là ký tự đặc biệt. Ví dụ: \. khớp với dấu chấm theo nghĩa đen, chứ không phải ký tự bất kỳ (ký tự dấu chấm) |
| Lớp ký tự | |
| [...] | Khớp với mọi ký tự trong một tập hợp ký tự. Phân tách ký tự đầu tiên và ký tự cuối cùng trong một bộ bằng dấu gạch ngang. Ví dụ: [123] khớp với chữ số 1, 2 hoặc 3 [a-f] khớp với mọi chữ cái từ a đến f Lưu ý: Biểu thức chính quy trong chính sách Tuân thủ nội dung phân biệt chữ hoa chữ thường. |
| [^...] | Khớp với mọi ký tự không có trong bộ ký tự. Ví dụ: [^a-f]khớp với mọi ký tự không phải là chữ cái từ a đến f Lưu ý: Biểu thức chính quy trong Chính sách tuân thủ nội dung phân biệt chữ hoa chữ thường. |
| [:alnum:] | Khớp các ký tự chữ và số (chữ cái hoặc chữ số): a-z, A-Z hoặc 0-9 Lưu ý: Bạn phải đặt lớp ký tự này trong một bộ dấu ngoặc vuông khác khi sử dụng trong biểu thức chính quy, ví dụ: [[:alnum:]]. |
| [:alpha:] | Khớp với các ký tự chữ cái: a-z hoặc A-Z Lưu ý: Lớp ký tự này phải được đặt trong một bộ dấu ngoặc vuông khác khi bạn sử dụng trong một biểu thức chính quy, ví dụ: [[:alpha:]]. |
| [:digit:] | Khớp với các chữ số: 0-9 Lưu ý: Bạn phải đặt lớp ký tự này trong một bộ dấu ngoặc vuông khác khi sử dụng trong biểu thức chính quy, ví dụ: [[:digit:]]. |
| [:graph:] | Chỉ khớp với các ký tự có thể nhìn thấy, tức là mọi ký tự ngoại trừ khoảng trắng, ký tự điều khiển, v.v. Lưu ý: Lớp ký tự này phải được đặt trong một bộ dấu ngoặc vuông khác khi bạn sử dụng trong biểu thức chính quy, ví dụ: [[:graph:]]. |
| [:punct:] | Khớp các ký tự dấu câu và ký hiệu: ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } Lưu ý: Lớp ký tự này phải được đặt trong một bộ dấu ngoặc vuông khác khi bạn sử dụng trong biểu thức chính quy, ví dụ: [[:punct:]]. |
| [:print:] | Khớp các ký tự và khoảng trắng có thể nhìn thấy. Lưu ý: Bạn phải đặt lớp ký tự này trong một bộ dấu ngoặc vuông khác khi sử dụng trong biểu thức chính quy, ví dụ: [[:print:]]. |
| [:space:] | Khớp tất cả các ký tự khoảng trắng, bao gồm cả dấu cách, dấu tab và dấu ngắt dòng. Lưu ý: Lớp ký tự này phải được đặt trong một bộ dấu ngoặc vuông khác khi bạn sử dụng trong biểu thức chính quy, ví dụ: [[:space:]]. |
| [:word:] | Khớp với mọi ký tự từ – tức là mọi chữ cái, chữ số hoặc dấu gạch dưới: a-z, A-Z, 0-9 hoặc _ Lưu ý: Lớp ký tự này phải được đặt trong một bộ dấu ngoặc vuông khác khi bạn sử dụng trong biểu thức chính quy, ví dụ: [[:word:]]. |
| Lớp ký tự viết tắt | |
| \w | Khớp với mọi ký tự từ, tức là mọi chữ cái, chữ số hoặc dấu gạch dưới: a-z, A-Z, 0-9 hoặc _ Tương đương với [:word:] |
| \W | Khớp với mọi ký tự không phải từ, tức là mọi ký tự không phải là chữ cái, chữ số hoặc dấu gạch dưới. Tương đương với [^[:word:]] |
| \s | Khớp với mọi ký tự khoảng trắng. Ví dụ: sử dụng ký tự này để chỉ định khoảng cách giữa các từ trong một cụm từ: stockstips khớp với cụm từ stock tips Tương đương với [:space:] |
| \S | Khớp với mọi ký tự không phải là dấu cách. Tương đương với [^[:space:]] |
| \d | Khớp với mọi chữ số từ 0 đến 9. Tương đương với [:digit:] |
| \D | Khớp với mọi ký tự không phải là chữ số từ 0 đến 9. Tương đương với [^[:digit:]] |
| Group | |
| (...) | Nhóm các phần của một biểu thức. Sử dụng tính năng nhóm để áp dụng một lượng từ cho một nhóm hoặc để so khớp một lớp ký tự trước hoặc sau một nhóm. |
| Lượng từ | |
| {n} | Khớp chính xác biểu thức trước đó n lần. Ví dụ: [a-c]{2} chỉ khớp với mọi chữ cái từ a đến c nếu có 2 chữ cái liên tiếp. Do đó, biểu thức này sẽ khớp với ab và bc nhưng không khớp với abc hoặc aabbc. |
| {n,m} | Khớp biểu thức trước đó tối thiểu n lần và tối đa m lần. Ví dụ: [a-c]{2,4} chỉ khớp với mọi chữ cái từ a đến c nếu các chữ cái xuất hiện tối thiểu 2 lần và tối đa 4 lần liên tiếp. Do đó, biểu thức này sẽ khớp với ab và abc nhưng không khớp với aabbc. |
| ? | Cho biết rằng ký tự hoặc biểu thức trước đó có thể khớp 0 hoặc 1 lần. Tương đương với dải ô {0;1}. Ví dụ: biểu thức chính quy sau: colou?r khớp với colour hoặc color, vì ? làm cho chữ cái u trở thành không bắt buộc. |