re.split(pattern, string, maxsplit=0) tách string bằng regex pattern. Hỗ trợ maxsplit giới hạn số lần tách.
Ví dụ cơ bản
import re
# Tách theo chữ 'a'
result = re.split(r'a', 'Dynamics')
print(result)
# ['Dyn', 'mics']
Kết quả
['Dyn', 'mics']
maxsplit: Giới hạn số lần tách
text = 'Dynamics Kinematics'
# Không giới hạn (mặc định maxsplit=0)
print(re.split(r'a', text))
# ['Dyn', 'mics Kinet', 'cs']
# Giới hạn 1 lần tách
print(re.split(r'a', text, maxsplit=1))
# ['Dyn', 'mics Kinematics']
# Giới hạn 2 lần
print(re.split(r'a', text, maxsplit=2))
# ['Dyn', 'mics Kinet', 'cs']
Capturing Group trong pattern: Giữ delimiter
# Không group: delimiter bị mất
re.split(r'a', 'abc') # ['', 'bc']
# Có group: delimiter được giữ
re.split(r'(a)', 'abc') # ['', 'a', 'bc']
re.split(r'(a+)', 'aaabcaa') # ['', 'aaa', 'bc', 'aa', '']
Flags
# Case insensitive split
re.split(r'a', 'AbC', flags=re.IGNORECASE) # ['', 'bC']
Lưu ý
maxsplit=0(mặc định) = không giới hạn.- Pattern match rỗng (ví dụ
r''hoặcr'a*'khớp rỗng) →ValueError. - Dùng
re.compile(pattern).split(string, maxsplit)cho pattern dùng lặp. - Delimiter phức tạp (multi-char):
re.split(r'---|\*\*\*', text).
Khi nào dùng re.split vs str.split
- str.split(): Delimiter cố định, đơn giản, hiệu năng cao.
- re.split(): Delimiter phức tạp, multiple delimiters, cần giữ delimiter, cần regex power.