Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách dùng delimiter tách chuỗi trong Python Regex (re.split)

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ặc r'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.