Elş*_*zım 1 python regex python-3.x
我正在导入字符串,并尝试检查文本是否仅包含“ az”,“ AZ”和“ 0-9”。
但是我只能输入,输入字母和数字时不会打印成功
import string
text=input("Enter: ")
correct = string.ascii_letters + string.digits
if text in correct:
print("Success")
Run Code Online (Sandbox Code Playgroud)
您可以为此使用正则表达式,例如,针对以下模式检查字符串:
import re
pattern = re.compile("[A-Za-z0-9]+")
pattern.fullmatch(string)
Run Code Online (Sandbox Code Playgroud)
说明:
[A-Za-z0-9] 匹配AZ,az和0-9范围内的字符,因此匹配字母和数字。
+ 表示匹配一个或多个先前的令牌。
该re.fullmatch()方法允许检查整个字符串是否与正则表达式模式匹配。如果找到匹配项,则返回相应的匹配对象;否则,None如果字符串与模式不匹配,则返回。
全部一起:
import re
if __name__ == '__main__':
string = "YourString123"
pattern = re.compile("[A-Za-z0-9]+")
# if found match (entire string matches pattern)
if pattern.fullmatch(string) is not None:
print("Found match: " + string)
else:
# if not found match
print("No match")
Run Code Online (Sandbox Code Playgroud)
只需使用 str.isalnum()
>>> '123AbC'.isalnum()
True
>>> '1&A'.isalnum()
False
Run Code Online (Sandbox Code Playgroud)
参考文档:
如果字符串中的所有字符都是字母数字并且至少有一个字符,则返回 true,否则返回 false。
c如果以下之一返回,则字符是字母数字字符True:、 、 或。c.isalpha()c.isdecimal()c.isdigit()c.isnumeric()
如果您不希望str.isdigit()或被str.isnumeric()检查这可能允许数字中的小数点,请使用str.isnumeric()and str.isalpha():
>>> all(c.isnumeric() or c.isalpha() for c in '123AbC')
True
>>> all(c.isnumeric() or c.isalpha() for c in '1&A')
False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2106 次 |
| 最近记录: |