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

Cách viết Regex kiểm tra chuỗi alphanumeric trong Python

Dùng sequence \w (word character) khớp alphanumeric + underscore. Để chỉ alphanumeric (không underscore), dùng [a-zA-Z0-9].

1. \w - Alphanumeric + Underscore

import re

# ^\w+$ : Toàn bộ chuỗi chỉ chứa word characters
result = re.search(r'^\w+$', 'Tutorials123')
print(result.group())  # Tutorials123

# Test các trường hợp
tests = ['Tutorials123', 'hello_world', 'abc123', 'abc-123', 'abc 123']
for t in tests:
    print(f'{t:15} -> {bool(re.match(r"^\w+$", t))}')

Kết quả


Tutorials123    -> True
hello_world     -> True (có underscore)
abc123          -> True
abc-123         -> False (có dấu -)
abc 123         -> False (có space)

2. Chỉ Alphanumeric (KHÔNG underscore)


# Chỉ chữ cái và số
pattern = r'^[a-zA-Z0-9]+$'

tests = ['abc123', 'hello_world', 'Test123']
for t in tests:
    print(f'{t:15} -> {bool(re.match(pattern, t))}')

Kết quả


abc123          -> True
hello_world     -> False (có _)
Test123         -> True

3. Unicode Alphanumeric (Python 3)

\w với flag re.UNICODE (mặc định Python 3) khớp chữ cái Unicode:


# Python 3: \w bao gồm chữ cái có dấu, tiếng Nhật, tiếng Hàn...
print(re.match(r'^\w+$', 'TiếngViệt123'))  # Match!
print(re.match(r'^\w+$', '日本語123'))      # Match!

4. Kiểm tra từng ký tự (findall)


# Tìm tất cả alphanumeric sequences
re.findall(r'\w+', 'Hello, World! 123')
# ['Hello', 'World', '123']

Tóm tắt

Yêu cầuPattern
Alphanumeric + _ (ASCII)^[a-zA-Z0-9_]+$ hoặc ^\w+$ (với re.ASCII)
Alphanumeric + _ (Unicode)^\w+$ (mặc định Python 3)
Chỉ Alphanumeric (không _)^[a-zA-Z0-9]+$
Chỉ Alphanumeric Unicode^[\p{L}\p{N}]+$ (cần module regex)