Biểu thức chính quy Python được thực hiện dễ dàng

Biểu thức chính quy (regex) là công cụ mạnh mẽ được sử dụng để khớp và thao tác chuỗi dựa trên các mẫu. Trong Python, mô-đun re cung cấp hỗ trợ cho các biểu thức chính quy, cho phép bạn thực hiện các hoạt động chuỗi phức tạp một cách hiệu quả. Bài viết này sẽ giới thiệu cho bạn những điều cơ bản về biểu thức chính quy và chỉ cho bạn cách sử dụng chúng hiệu quả trong Python.

Bắt đầu với Mô-đun re

Để sử dụng biểu thức chính quy trong Python, bạn cần nhập mô-đun re. Mô-đun này cung cấp một số hàm để làm việc với các mẫu biểu thức chính quy:

  • re.match() - Chỉ kiểm tra sự trùng khớp ở đầu chuỗi.
  • re.search() - Tìm kiếm toàn bộ chuỗi để tìm kết quả trùng khớp.
  • re.findall() - Tìm tất cả các kết quả khớp trong chuỗi và trả về chúng dưới dạng danh sách.
  • re.sub() - Thay thế các kết quả khớp trong chuỗi bằng một giá trị thay thế được chỉ định.

Ghép mẫu cơ bản

Biểu thức chính quy sử dụng các ký tự đặc biệt để xác định các mẫu tìm kiếm. Sau đây là một số mẫu cơ bản:

  • . - Phù hợp với bất kỳ ký tự đơn nào ngoại trừ ký tự xuống dòng.
  • \d - Phù hợp với bất kỳ chữ số nào (tương đương với [0-9]).
  • \w - Phù hợp với bất kỳ ký tự chữ và số nào (tương đương với [a-zA-Z0-9_]).
  • \s ​​- Phù hợp với bất kỳ ký tự khoảng trắng nào.
  • ^ - Phù hợp với phần bắt đầu của chuỗi.
  • $ - Phù hợp với phần cuối của chuỗi.

Ví dụ

Sau đây là một số ví dụ minh họa cách khớp mẫu cơ bản:

import re

# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group())  # Output: Hello

# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group())  # Output: 24

Sử dụng biểu thức chính quy với nhóm

Nhóm được sử dụng để nắm bắt các phần của văn bản khớp. Chúng được định nghĩa bằng dấu ngoặc đơn. Ví dụ, để trích xuất các phần cụ thể của một mẫu, bạn có thể sử dụng nhóm:

pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'

# Find all matches with groups
match = re.search(pattern, text)
if match:
    print(f'Area Code: {match.group(1)}')  # Output: 123
    print(f'Prefix: {match.group(2)}')     # Output: 45
    print(f'Suffix: {match.group(3)}')     # Output: 6789

Sử dụng các ký tự đặc biệt

Biểu thức chính quy bao gồm một số ký tự đặc biệt để khớp mẫu phức tạp hơn:

  • * - Phù hợp với 0 hoặc nhiều lần xuất hiện của phần tử trước đó.
  • + - Phù hợp với 1 hoặc nhiều lần xuất hiện của phần tử trước đó.
  • ? - Phù hợp với 0 hoặc 1 lần xuất hiện của phần tử trước đó.
  • {n} - Phù hợp chính xác với số lần xuất hiện n của phần tử trước đó.
  • | - Phù hợp với mẫu trước hoặc mẫu sau nó.

Ví dụ

Sau đây là một số ví dụ sử dụng các ký tự đặc biệt:

# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result)  # Output: ['123', '', '', '456']

# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result)  # Output: ['24', '3']

Thay thế văn bản bằng biểu thức chính quy

Hàm re.sub() được sử dụng để thay thế các phần của chuỗi khớp với một mẫu:

text = 'The rain in Spain falls mainly in the plain.'

# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text)  # Output: The rain in France falls mainly in the plain.

Phần kết luận

Biểu thức chính quy là một công cụ mạnh mẽ để khớp mẫu và thao tác văn bản trong Python. Với mô-đun re, bạn có thể tìm kiếm, khớp và thay thế văn bản dựa trên các mẫu phức tạp. Bằng cách hiểu cú pháp cơ bản và các ký tự đặc biệt, bạn có thể tận dụng các biểu thức chính quy để xử lý hiệu quả nhiều tác vụ xử lý văn bản.