Ký tự chữ (Literal characters)
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | python Khớp đầu dòng. |
Lớp ký tự (Character classes)
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | [Pp]ython Khớp "Python" hoặc "python". |
| 2 | rub[ye] Khớp "ruby" hoặc "rube". |
| 3 | [aeiou] Khớp bất kỳ nguyên âm thường nào. |
| 4 | [0-9] Khớp bất kỳ chữ số nào; giống [0123456789]. |
| 5 | [a-z] Khớp bất kỳ chữ cái ASCII thường nào. |
| 6 | [A-Z] Khớp bất kỳ chữ cái ASCII hoa nào. |
| 7 | [a-zA-Z0-9] Khớp bất kỳ ký tự nào trong các nhóm trên. |
| 8 | [^aeiou] Khớp bất kỳ ký tự nào ngoại trừ nguyên âm thường. |
| 9 | [^0-9] Khớp bất kỳ ký tự nào ngoại trừ chữ số. |
Lớp ký tự đặc biệt (Special Character Classes)
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | . Khớp bất kỳ ký tự nào trừ newline. |
| 2 | \d Khớp chữ số: [0-9]. |
| 3 | \D Khớp không phải chữ số: [^0-9]. |
| 4 | \s Khớp ký tự khoảng trắng: [ \t\r\n\f]. |
| 5 | \S Khớp không phải khoảng trắng: [^ \t\r\n\f]. |
| 6 | \w Khớp ký tự từ đơn lẻ: [A-Za-z0-9_]. |
| 7 | \W Khớp ký tự không phải từ: [^A-Za-z0-9_]. |
Trường hợp lặp lại (Repetition Cases)
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | ruby? Khớp "rub" hoặc "ruby": y là tùy chọn. |
| 2 | ruby* Khớp "rub" cộng 0 hoặc nhiều y. |
| 3 | ruby+ Khớp "rub" cộng 1 hoặc nhiều y. |
| 4 | \d{3} Khớp chính xác 3 chữ số. |
| 5 | \d{3,} Khớp 3 hoặc nhiều chữ số hơn. |
| 6 | \d{3,5} Khớp 3, 4, hoặc 5 chữ số. |
Lặp lại không tham lam (Nongreedy repetition)
Điều này khớp với số lượng lặp lại nhỏ nhất:
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | <.*> Lặp tham lam: khớp "<python>perl>". |
| 2 | <.*?> Không tham lam: khớp "<python>" trong "<python>perl>". |
Nhóm với dấu ngoặc đơn (Grouping with Parentheses)
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | \D\d+ Không nhóm: + lặp lại \d. |
| 2 | (\D\d)+ Đã nhóm: + lặp lại cặp \D\d. |
| 3 | ([Pp]ython(, )?)+ Khớp "Python", "Python, python, python", v.v. |
Tham chiếu ngược (Backreferences)
Điều này khớp lại một nhóm đã khớp trước đó:
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | ([Pp])ython&\1ails Khớp python&pails hoặc Python&Pails. |
| 2 | (['"])[^\1]*\1 Chuỗi được trích dẫn đơn hoặc kép. \1 khớp với những gì nhóm 1 khớp. \2 khớp với nhóm 2, v.v. |
Lựa chọn thay thế (Alternatives)
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | python|perl Khớp "python" hoặc "perl". |
| 2 | rub(y|le) Khớp "ruby" hoặc "ruble". |
| 3 | Python(!+|\?) "Python" theo sau bởi một hoặc nhiều ! hoặc một ?. |
Neo (Anchors)
Cần chỉ định vị trí khớp.
| STT | Ví dụ & Mô tả |
|---|---|
| 1 | ^Python Khớp "Python" tại đầu chuỗi hoặc dòng nội bộ. |
| 2 | Python$ Khớp "Python" tại cuối chuỗi hoặc dòng. |
| 3 | \APython Khớp "Python" tại đầu chuỗi. |
| 4 | Python\Z Khớp "Python" tại cuối chuỗi. |
| 5 | \bPython\b Khớp "Python" tại ranh giới từ. |
| 6 | \brub\B \B là ranh giới không phải từ: khớp "rub" trong "rube" và "ruby" nhưng không đơn lẻ. |
| 7 | Python(?=!) Khớp "Python", nếu theo sau là dấu chấm than. |
| 8 | Python(?!!) Khớp "Python", nếu không theo sau là dấu chấm than. |