Python的字符串计数功能不使用正则表达式

时间:2016-09-30 17:56:15

标签: python regex python-2.7 function

当尝试使用count函数和正则表达式[A-Za-z]计算字符串中的所有字母时,它返回一个零值。

例如:

string="Hi, everybody. Let's dance!"

string.count('[A-Za-z]') ## prints 0

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

使用正则表达式:

len(re.findall('[A-Za-z]', string))

答案 1 :(得分:0)

如brianpcks评论中所述,有些替代品不需要使用正则表达式:

len(c for c in string if c.isalpha())

from string import ascii_lowercase
len(c for c in string if c in string.ascii_lowercase)

虽然这些替代方案在CPython中可能会更慢,但是你的里程可能因其他Python实现而有所不同(特别是PyPy,他们的JIT可以很好地优化python循环)。

与往常一样,如果速度是一个问题,请在决定使用哪个方法之前对您的环境中的两种方法进行基准测试。

答案 2 :(得分:-1)

因为计数不起作用,请查看此链接count

在该声明中,您将告诉' [A-Za-z]'在字符串中 如果要计算字符串中的所有字母,请使用len()