Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะตรวจสอบว่าสตริงมีตัวอักษรและตัวเลขอย่างน้อยหนึ่งตัวใน Python ได้อย่างไร?


วิธีที่ง่ายที่สุดในการตรวจสอบสิ่งนี้ใน 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