我怎样才能检查一个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()来查看它是否包含一些小写字母(以及其他字符)。 orisupper()来检查是否包含一些大写字母:

如下: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)