Mẫu nâng cao của Regex

Các nhóm được đặt tên, cái nhìn và kết hợp mờ.

Thử trong Trình chỉnh sửa

Tổng quan

Gói biểu thức chính quy hoạt động như một sự thay thế cho gói re.

Điều này hỗ trợ rộng rãi các cây tra cứu mờ và các ký tự nhóm được đặt tên riêng biệt ngay lập tức.

Đầu ra mã & thực thi

Phân tích bố cục nhật ký bảo mật và thực hiện 1 kết hợp mờ thay thế.

import regex

# Named capture groups — parse a log line
log = "2025-07-04 14:32:01 ERROR  [auth] Login failed for user@example.com"
pattern = r"(?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}) (?P<level>\w+)\s+\[(?P<module>\w+)\] (?P<message>.+)"
m = regex.match(pattern, log)
if m:
    print("Match Breakdown:")
    for k, v in m.groupdict().items():
        print(f"  {k:<10}: {v}")

# Fuzzy matching (allows 1 substitution)
print("\nFuzzy search for 'colour' (≤1 error):")
text = "I prefer colour and cilor and colouur"
for hit in regex.finditer(r"(?:colour){s<=1}", text):
    print(f"  found '{hit.group()}' at {hit.span()}")
Đầu ra thiết bị đầu cuối
Match Breakdown:
  date      : 2025-07-04
  time      : 14:32:01
  level     : ERROR
  module    : auth
  message   : Login failed for user@example.com

Fuzzy search for 'colour' (≤1 error):
  found 'colour' at (9, 15)
  found 'colouur' at (30, 37)

Triển khai từng bước

  • Regex phân tích dữ liệu văn bản
  • Quét nhật ký mờ
  • Các mẫu chuẩn hóa chuỗi

Câu hỏi thường gặp

Chủ đề liên quan