我正在导入字符串并尝试检查文本是否仅包含“az”、“AZ”和“0-9”。
但是我只得到输入,当我输入字母和数字时它不会打印成功
import string
text=input("Enter: ")
correct = string.ascii_letters + string.digits
if text in correct:
print("Success")
原文由 Elşən Kazım 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在导入字符串并尝试检查文本是否仅包含“az”、“AZ”和“0-9”。
但是我只得到输入,当我输入字母和数字时它不会打印成功
import string
text=input("Enter: ")
correct = string.ascii_letters + string.digits
if text in correct:
print("Success")
原文由 Elşən Kazım 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需使用 str.isalnum()
>>> '123AbC'.isalnum()
True
>>> '1&A'.isalnum()
False
参考文档:
如果字符串中的所有字符都是字母数字并且至少有一个字符,则返回 true,否则返回 false。 A character
c
is alphanumeric if one of the following returnsTrue
:c.isalpha()
,c.isdecimal()
,c.isdigit()
, orc.isnumeric()
。
If you don’t want str.isdigit()
or str.isnumeric()
to be checked which may allow for decimal points in digits just use 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
原文由 Jab 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答9.6k 阅读✓ 已解决
2 回答5.3k 阅读✓ 已解决
2 回答3.6k 阅读✓ 已解决
3 回答4.5k 阅读
3 回答1.4k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
您可以为此使用正则表达式,例如根据以下模式检查字符串:
解释:
[A-Za-z0-9]
匹配AZ、az和0-9范围内的一个字符,so字母和数字。+
表示匹配 1 个或多个前面的标记。re.fullmatch()
方法允许检查整个字符串是否与正则表达式模式匹配。如果找到匹配项,则返回相应的匹配对象,否则如果字符串与模式不匹配,则返回None
。全部一起: