Trong Python, mô-đun re (Regular Expressions) cung cấp nhiều phương thức hữu ích để làm việc với các biểu thức chính quy. Dưới đây là giải thích chi tiết về ba phương thức split(), sub(), và subn() của mô-đun re.

1. Phương Thức split()

Phương thức re.split() được sử dụng để tách một chuỗi thành một danh sách các chuỗi con, sử dụng một biểu thức chính quy làm dấu phân cách.

Cú Pháp

re.split(pattern, string, maxsplit=0, flags=0)
  • pattern: Biểu thức chính quy để xác định các dấu phân cách.
  • string: Chuỗi cần tách.
  • maxsplit: Số lần tối đa mà bạn muốn tách (mặc định là 0, nghĩa là không giới hạn).
  • flags: Các cờ điều khiển cho việc tìm kiếm (mặc định là 0).

Ví Dụ

import re

text = "Python is great; Java is good; C++ is okay"
result = re.split(r';s*', text)  # Tách bằng dấu chấm phẩy và khoảng trắng tùy chọn
print(result)

Kết quả:

['Python is great', 'Java is good', 'C++ is okay']

2. Phương Thức sub()

Phương thức re.sub() được sử dụng để thay thế tất cả các mẫu khớp với biểu thức chính quy bằng một chuỗi khác.

Cú Pháp

re.sub(pattern, repl, string, count=0, flags=0)
  • pattern: Biểu thức chính quy để tìm mẫu.
  • repl: Chuỗi thay thế cho các mẫu khớp.
  • string: Chuỗi cần tìm và thay thế.
  • count: Số lần tối đa mà bạn muốn thay thế (mặc định là 0, nghĩa là thay thế tất cả).
  • flags: Các cờ điều khiển cho việc tìm kiếm (mặc định là 0).

Ví Dụ

import re

text = "I like cats and dogs."
result = re.sub(r'cats|dogs', 'pets', text)  # Thay thế "cats" và "dogs" bằng "pets"
print(result)

Kết quả:

I like pets and pets.

3. Phương Thức subn()

Phương thức re.subn() tương tự như sub(), nhưng nó không chỉ trả về chuỗi đã thay thế mà còn trả về một tuple chứa số lần thay thế đã được thực hiện.

Cú Pháp

re.subn(pattern, repl, string, count=0, flags=0)
  • pattern: Biểu thức chính quy để tìm mẫu.
  • repl: Chuỗi thay thế cho các mẫu khớp.
  • string: Chuỗi cần tìm và thay thế.
  • count: Số lần tối đa mà bạn muốn thay thế (mặc định là 0, nghĩa là thay thế tất cả).
  • flags: Các cờ điều khiển cho việc tìm kiếm (mặc định là 0).

Ví Dụ

import re

text = "I like apples and oranges."
result, count = re.subn(r'apples|oranges', 'fruits', text)  # Thay thế và đếm số lần thay thế
print(result)  # Chuỗi đã thay thế
print(count)   # Số lần thay thế

Kết quả:

I like fruits and fruits.
2

Tóm Tắt

  • split(): Tách một chuỗi thành danh sách bằng cách sử dụng biểu thức chính quy làm dấu phân cách.
  • sub(): Thay thế tất cả các mẫu khớp với biểu thức chính quy bằng một chuỗi khác.
  • subn(): Tương tự như sub(), nhưng trả về một tuple chứa chuỗi đã thay thế và số lần thay thế đã được thực hiện.

Các phương thức này là những công cụ mạnh mẽ trong việc xử lý chuỗi và cho phép bạn thực hiện các thao tác phức tạp với văn bản một cách dễ dàng.