Dấu ngoặc đơn ( và ) là metacharacter trong regex (dùng cho grouping). Để khớp ký tự ngoặc đơn thực tế, phải escape bằng backslash \\( \\).
Ví dụ: Khớp và xóa dấu ngoặc
import re
s = 'I love book()'
# Khớp cặp ngoặc ()
match = re.search(r'\(\)', s)
print(match.group()) # ()
# Xóa tất cả dấu ngoặc đơn
s1 = 'I love book(s)'
cleaned = re.sub(r'[\(\)]', '', s1)
print(cleaned) # I love books
Kết quả
()
I love books
Giải thích Pattern
| Pattern | Ý nghĩa |
|---|---|
\(\) | Khớp chuỗi "()" chính xác (escape cả 2) |
[\(\)] | Character class: khớp '(' HOẶC ')' |
\(.*?\) | Khớp từ '(' đến ')' gần nhất (non-greedy) |
Ví dụ nâng cao: Lấy nội dung trong ngoặc
text = "Function: func(param1, param2)"
# Capturing group bên trong ngoặc
match = re.search(r'\(([^)]+)\)', text)
if match:
print(match.group(1)) # param1, param2
Lưu ý
- Luôn escape
(và)khi muốn khớp ký tự thực. - Trong character class
[()], escape là tùy chọn nhưng khuyến nghị escape để rõ ràng. - Dùng
re.escape()để tự động escape toàn bộ string literal.