我想计算字符串中字符串的重叠出现次数。
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了。为什么我需要在双方都包括+?
答案 0 :(得分:0)
这就是字符串连接在Python中的工作原理。
您在此处'(?=' + sub_string + ')'
所做的是,例如sub_string = 'hello'
:
'(?=' + 'hello' + ')'
没有连接运算符,变量在两个字符串之间没有位置。
在Python 3.6中,您可以使用f-strings并简单地使用一个字符串 - 这是我可能会在这里做的:
f"(?={sub_string})"