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")
import string
text = input("Enter: ")
correct = string.ascii_letters + string.digits
status = True
for char in text:
if char not in correct:
status = False
if status:
print('Correct')
else:
print('InCorrect')
import string
def validCharacters(text):
correct = string.ascii_letters + string.digits
for character in text:
if character not in correct:
return False
return True
text = input("Enter: ")
if validCharacters(text):
print("Correct")
else:
print("Incorrect")
7条答案
按热度按时间6yoyoihd1#
你可以使用正则表达式来实现,例如。根据以下模式检查字符串:
说明:
[A-Za-z0-9]
匹配A-Z、a-z和0-9范围内的字符,因此是字母和数字。+
表示匹配1个或多个前面的令牌。re.fullmatch()
方法允许检查整个字符串是否匹配正则表达式模式。如果找到匹配,则返回相应的匹配对象,否则如果字符串与模式不匹配,则返回None
。一起来:
bakd9h0s2#
使用
str.isalnum()
即可引用文档:
如果字符串中的所有字符都是字母数字并且至少有一个字符,则返回true,否则返回false。如果下列之一返回
True
,则字符c
是字母数字:c.isalpha()
、c.isdecimal()
、c.isdigit()
或c.isnumeric()
。如果您不想检查
str.isdigit()
或str.isnumeric()
,因为它们可能允许数字中的小数点,请使用str.isnumeric()
和str.isalpha()
:jdgnovmf3#
您必须分别比较传入文本的每个字母。
bksxznpy4#
您正在测试整个字符串是否在字符串
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
中假设输入是
'testInput'
您正在检查
'testInput'
是否在字符串'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
中,但它不在。您需要逐个检查每个字符
为了方便使用,您可以使用一个函数来实现这一点
rsl1atfo5#
我们可以删除所有不是A-Z,a-z或0-9的字符,然后检查剩余字符串的长度。如果它大于0,则有一些字符不是上面的字符:
结果:
ltskdhd16#
你可以用很多不同的方法来做,我会用下面的方法来利用
set
s:我只是检查由给定文本的字符组成的
set
是否是所有法律的字符的set
的子集。请记住,这总是处理整个文本,从性能的Angular 来看,这不是最好的(因为您可能会在发现第一个非法字符后结束检查),但它应该不会有问题,除非您需要处理很长的文本或在很短的时间内。30byixjq7#
可以使用正则表达式匹配来检查字符串是否只包含字母和字母