วิธีที่ง่ายที่สุดในการตรวจสอบสิ่งนี้ใน python คือการใช้นิพจน์ทั่วไป เพื่อตรวจสอบว่าสตริงที่ระบุมีตัวอักษรและตัวเลขอย่างน้อยหนึ่งตัวหรือไม่ เราใช้ re.match(regex, string)
ตัวอย่าง
import re
print(bool(re.match('^(?=.*[0-9]$)(?=.*[a-zA-Z])', 'hasAlphanum123')))
print(bool(re.match('^(?=.*[0-9])(?=.*[a-zA-Z]$)', 'some string'))) ผลลัพธ์
True False
ไวยากรณ์ ?=ใช้เพื่อเรียก lookaheads ในนิพจน์ทั่วไป Lookaheads มองไปข้างหน้าในสตริงจากตำแหน่งปัจจุบันเพื่อค้นหารายการที่ตรงกันในสตริงที่กำหนด คุณสามารถอ่านเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ได้ที่นี่
เรายังสามารถตรวจสอบตัวอักษรหนึ่งตัวและตัวเลขหนึ่งตัวโดยใช้การวนซ้ำแบบธรรมดาและ 2 แฟล็ก
ตัวอย่าง
def validateString(s):
letter_flag = False
number_flag = False
for i in s:
if i.isalpha():
letter_flag = True
if i.isdigit():
number_flag = True
return letter_flag and number_flag
print validateString('hasAlphanum23')
print validateString('some string') ผลลัพธ์
สิ่งนี้ให้ผลลัพธ์แก่เรา -
True False