如果字符串中含有字母或数字,返回true。否则,返回false。
我必须这样做,对吧?
我必须这样做,对吧?
return re.match('[A-Z0-9]',thestring)
使用 thestring.isalnum()
方法。
>>> '123abc'.isalnum()
True
>>> '123'.isalnum()
True
>>> 'abc'.isalnum()
True
>>> '123#$%abc'.isalnum()
>>> a = '123abc'
>>> (a.isalnum()) and (not a.isalpha()) and (not a.isnumeric())
True
>>>
isalnum()
中的 alnum
部分代表字母数字,也就是说 包含字母或数字
。听起来 Python 有一个内置的字符串方法可以为您执行此测试,因此无需使用正则表达式。 - Anthony Grist如果您想检查所有字符是否为字母数字:
string.isalnum()
(如@DrTyrsa所指出的),或者bool(re.match('[a-z0-9]+$', thestring, re.IGNORECASE))
如果您想检查是否至少有一个字母数字字符存在:
import string
alnum = set(string.letters + string.digits)
len(set(thestring) & alnum) > 0
或者
bool(re.search('[a-z0-9]', thestring, re.IGNORECASE))
[A-Za-z0-9]
比 [a-z0-9]
再加上 re.IGNORECASE
标志要稍微快一些。而且它确实更优美。(不管怎样,它仍然比 str.isalnum()
慢大约十倍左右)。 - Chris Morganisalnum()
。我只是添加了正则表达式,因为OP在评论中明确要求它。 - mhyfritz如果您想确定字符串中至少有一个字母或数字,可能需要一些时间,但我们可以使用
re.match('. * [a-zA-Z0-9]。*', yourstring)
关于什么?
stringsample.isalpha()
方法?