如何检查字符串是否包含字母?
用纯Python怎么检查一个字符串里有没有字母?
string_1 = "(555).555-5555"
string_2 = "(555) 555 - 5555 ext. 5555
这里面,string_1
如果没有字母,就会返回False
;而string_2
如果有字母,就会返回True
。
7 个回答
30
你可以用 islower()
来检查你的字符串里是否有小写字母(还有其他字符)。如果你想同时检查是否有大写字母,可以把它和 isupper()
一起用:
下面这个例子:字符串里有字母的情况:test 返回 true。
>>> z = "(555) 555 - 5555 ext. 5555"
>>> z.isupper() or z.islower()
True
下面这个例子:字符串里没有字母的情况:test 返回 false。
>>> z= "(555).555-5555"
>>> z.isupper() or z.islower()
False
>>>
注意不要和 isalpha()
混淆,后者只有在所有字符都是字母时才会返回 True
,这并不是你想要的结果。
另外,Barm 的回答很好地补充了我的内容,因为我的方法对混合大小写的处理不太好。
112
这样怎么样:
>>> 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
165
正则表达式应该是一种快速的方法:
re.search('[a-zA-Z]', the_string)