【发布时间】:2018-11-01 15:20:38
【问题描述】:
我很享受一些挑战,其中一个让我计算字符串中的子字符串。我对“香蕉”有一个特别的问题:
str = "banana"
print(str.count("ana"))
这应该返回 2,因为 "ana" 出现了两次:
b a n a n a
a n a
a n a
但是 str.count("ana") 只返回 1。我也尝试过使用正则表达式:
import re
str = "banana"
print(len(re.findall("ana", str)))
但它也返回 1。我错过了什么吗?
谢谢!
【问题讨论】:
-
正如文档所说,
str.count计算子字符串的 非重叠 次。 -
顺便说一句,您不应该调用变量
str或任何其他内置类型/函数。 -
您可以使用支持重叠模式匹配的正则表达式模块。 print(len(regex.findall("ana", str,overlapped=True)))
标签: python regex python-3.x count