计算字符串中字符串的重叠出现次数

时间:2017-12-12 12:58:45

标签: python string

我想计算字符串中字符串的重叠出现次数。

import re
def function(string, sub_string):
    match = re.findall('(?='sub_string')',string)
    return len(match)

显示语法错误:

File "solution.py", line 3
    return len(re.findall('(?='sub_string')',string))
                                        ^
SyntaxError: invalid syntax. 

但如果我写

import re
def function(string, sub_string):
    match = re.findall('(?='+sub_string+')',string)
    return len(match)

那就OK了。为什么我需要在双方都包括+?

1 个答案:

答案 0 :(得分:0)

这就是字符串连接在Python中的工作原理。

您在此处'(?=' + sub_string + ')'所做的是,例如sub_string = 'hello'

'(?=' + 'hello' + ')'

没有连接运算符,变量在两个字符串之间没有位置。

在Python 3.6中,您可以使用f-strings并简单地使用一个字符串 - 这是我可能会在这里做的:

f"(?={sub_string})"