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

Cách viết Regex khớp phần mở rộng file (file extension) trong Python

Dùng anchor $ (cuối chuỗi) kết hợp với pattern phần mở rộng để khớp file extension.

Ví dụ cơ bản

import re

filename = '87654_3.doc'
# Khớp '.doc' ở cuối chuỗi
match = re.search(r'\.doc$', filename)
if match:
    print(match.group())  # .doc

Kết quả


.doc

Pattern tổng quát hơn


# Khớp bất kỳ extension nào (chấm + 1-4 chữ cái/số)
r'\.[a-zA-Z0-9]{1,4}$'

# Khớp extension phổ biến
r'\.(?:doc|docx|pdf|txt|jpg|png|xls|xlsx)$'

# Capture extension vào group
r'\.([a-zA-Z0-9]+)$'

Ví dụ trích xuất extension


files = ['report.doc', 'image.png', 'data.csv', 'script.py', 'README']

for f in files:
    m = re.search(r'\.([a-zA-Z0-9]+)$', f)
    ext = m.group(1) if m else 'no extension'
    print(f'{f:15} -> {ext}')

Kết quả


report.doc      -> doc
image.png       -> png
data.csv        -> csv
script.py       -> py
README          -> no extension

Lưu ý

  • Escape dấu chấm: \. (dấu chấm không escape khớp bất kỳ ký tự nào).
  • Anchor $ đảm bảo khớp ở cuối filename.
  • Dùng re.IGNORECASE hoặc [a-zA-Z] cho case-insensitive.
  • Cách tốt hơn cho path: os.path.splitext() hoặc pathlib.Path.suffix (không cần regex).

Cách Pythonic (không regex)


from pathlib import Path

for f in files:
    ext = Path(f).suffix  # '.doc', '.png', ''...
    print(f'{f:15} -> {ext.lstrip(".") or "no extension"}')