Regex sử dụng các ký tự đặc biệt (metacharacters) với ý nghĩa riêng. Bảng dưới tóm tắt theo tài liệu Python.
Metacharacters ngoài Character Class
| Char | Ý nghĩa |
\ | Escape hoặc bắt đầu special sequence |
. | Bất kỳ ký tự trừ newline (xem re.DOTALL) |
^ | Đầu string (xem re.MULTILINE) |
$ | Cuối string (xem re.MULTILINE) |
[ ] | Character class |
| | Alternation (OR) |
( ) | Capturing group, precedence |
? * + { } | Quantifiers |
Metacharacters BÊN TRONG Character Class [...]
| Char | Ý nghĩa |
] | Kết thúc class (nếu không phải ký tự 1) |
- | Range (ví dụ a-c) |
^ | Negation (chỉ nếu là ký tự 1) |
\ | Escape |
Các metacharacters khác (.$*+?{}()|) mất tác dụng đặc biệt bên trong [...].
Quantifiers (Thêm ? cho non-greedy)
| Quantifier | Ý nghĩa | Tương đương |
{m} | Chính xác m lần | |
{m,n} | Từ m đến n lần | |
* | 0 hoặc nhiều | {0,} |
+ | 1 hoặc nhiều | {1,} |
? | 0 hoặc 1 | {0,1} |
Special Sequences (Backslash sequences)
| Seq | Ý nghĩa |
\d | Digit [0-9] |
\D | Non-digit |
\w | Word char [a-zA-Z0-9_] |
\W | Non-word |
\s | Whitespace |
\S | Non-whitespace |
\b | Word boundary |
\B | Non-word boundary |
\A | Start of string |
\Z | End of string |
\number | Backreference đến group số |
\g | Backreference đến named group |
Flags quan trọng
re.IGNORECASE (re.I): Case-insensitive.
re.MULTILINE (re.M): ^ $ khớp đầu/cuối mỗi dòng.
re.DOTALL (re.S): . khớp newline.
re.VERBOSE (re.X): Pattern đẹp, có comment.
re.ASCII (re.A): \w \d \s chỉ ASCII.