我怎样才能检查一个string是否包含字母表中的任何字母?
什么是最好的纯Python实现来检查一个string是否包含字母表中的任何字母?
string_1 = "(555).555-5555" string_2 = "(555) 555 - 5555 ext. 5555
其中string_1
将返回False
因为在其中没有字母的字母,并且string_2
将返回True
以获得字母。
正则expression式应该是一个快速的方法:
re.search('[a-zA-Z]', the_string)
怎么样:
>>> string_1 = "(555).555-5555" >>> string_2 = "(555) 555 - 5555 ext. 5555" >>> any(c.isalpha() for c in string_1) False >>> any(c.isalpha() for c in string_2) True
您可以在string上使用islower()
来查看它是否包含一些小写字母(以及其他字符)。 or
用isupper()
来检查是否包含一些大写字母:
如下:string中的字母:test产生true
>>> z = "(555) 555 - 5555 ext. 5555" >>> z.isupper() or z.islower() True
如下:string中没有字母:testing结果为false。
>>> z= "(555).555-5555" >>> z.isupper() or z.islower() False >>>
不要与isalpha()
混淆,只有当所有字符都是字母时,才返回True
,这不是你想要的。
你可以像这样使用正则expression式:
import re print re.search('[a-zA-Z]+',string)