【发布时间】:2015-08-05 06:25:13
【问题描述】:
返回字符串
"code"在任意位置出现的次数 给定的字符串,除了我们将接受'd'的任何字母,所以"cope"和"cooe"计数。
我使用正则表达式通过以下代码实现了这一点:
import re
def count_code(str):
exp = '^co[a-z|A-Z]e$'
count = 0
for i in range(len(str) - 1):
if re.match(exp, str[i:i + 4]):
count = count + 1
return count
print count_code('aaacodebbb') # prints 1
print count_code('codexxcode') # prints 2
print count_code('cozexxcope') # prints 2
有没有其他方法可以在不使用正则表达式的情况下实现这一点?
【问题讨论】:
-
您的正则表达式变体效率低下。查看re.findall,并将其与len结合起来。
-
“还有其他方法吗……” - 是的,当然有。您有真正的问题吗?
-
len(re.findall(r'co[a-zA-Z]e', string))