Để 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 xây dựng. Ví dụ: biểu thức chính quy đơn giản sau đây khớp với mọi số điện thoại có 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ả |
|---|---|
| Neo | |
| ^ | (dấu mũ) Khớp với điểm bắt đầ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ụ: một quy tắc nội dung có vị trí Dòng tiêu đề và biểu thức chính quy sau đây: ^abc sẽ nắm bắt mọi nội dung email có dòng tiêu đề bắt đầu bằng các chữ cái abc |
| $ | (dấu đô la) Khớp với điểm kết thúc 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ụ: một quy tắc nội dung có vị trí Dòng tiêu đề và biểu thức chính quy sau đây: xyz$ sẽ nắm bắt mọi nội dung email có dòng tiêu đề kết thúc bằng các chữ cái xyz |
| Siêu ký 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 đứng) 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 một dấu chấm theo nghĩa đen, chứ không phải là 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 tập hợp 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ủ về nội dung phân biệt chữ hoa chữ thường. |
| [^...] | Khớp với mọi ký tự không có trong tập hợp 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ủ về nội dung phân biệt chữ hoa chữ thường. |
| [:alnum:] | Khớp với các ký tự chữ và số (chữ cái hoặc chữ số): a-z, A-Z hoặc 0-9 Lưu ý: Lớp ký tự này phải được đặt trong một tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này trong biểu thức chính quy, ví dụ: [[:alnum:]]. |
| [:alpha:] | Khớp với các ký tự chữ cái (chữ cái): a-z hoặc A-Z Lưu ý: Lớp ký tự này phải được đặt trong một tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này trong biểu thức chính quy, ví dụ: [[:alpha:]]. |
| [:digit:] | Khớp với các chữ số: 0-9 Lưu ý: Lớp ký tự này phải được đặt trong một tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này 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ừ dấu cách, ký tự điều khiển, v.v. Lưu ý: Lớp ký tự này phải được đặt trong một tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này trong biểu thức chính quy, ví dụ: [[:graph:]]. |
| [:punct:] | Khớp với các ký tự và biểu tượng dấu chấm câu: ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } Lưu ý: Lớp ký tự này phải được đặt trong một tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này trong biểu thức chính quy, ví dụ: [[:punct:]]. |
| [:print:] | Khớp với các ký tự và dấu cách có thể nhìn thấy. Lưu ý: Lớp ký tự này phải được đặt trong một tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này trong biểu thức chính quy, ví dụ: [[:print:]]. |
| [:space:] | Khớp với mọi 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 tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này 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 tập hợp dấu ngoặc vuông khác khi bạn sử dụng lớp ký tự này 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 một dấu 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à khoảng trắng. 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:]] |
| Nhóm | |
| (...) | 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 dấu định lượng cho một nhóm hoặc để khớp với một lớp ký tự trước hoặc sau một nhóm. |
| Dấu định lượng | |
| {n} | Khớp với biểu thức trước đó đúng n lần. Ví dụ: [a-c]{2} chỉ khớp với mọi chữ cái từ a đến c nếu hai chữ cái xuất hiện liên tiếp. Do đó, biểu thức sẽ khớp với ab và bc nhưng không khớp với abc hoặc aabbc. |
| {n,m} | Khớp với 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 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 phạm vi {0,1}. Ví dụ: biểu thức chính quy sau đây: colou?r khớp với colour hoặc color, vì ? biến chữ cái u thành không bắt buộc. |