Python 什么是';(?=';和';)';你在这儿干什么?

Python 什么是';(?=';和';)';你在这儿干什么?,python,regex,Python,Regex,这里的代码是为了找出子字符串的数量。 我尝试了其他方法,但使用这行代码更短,效果也一样 count=len(re.findall('(?='+sub_string+')', string)) 这可能会提供一些上下文 import re def count_substring(string, sub_string): count=len(re.findall('(?='+sub_string+')', string)) return count 此代码使用?=是的文本。它告诉正

这里的代码是为了找出子字符串的数量。 我尝试了其他方法,但使用这行代码更短,效果也一样

count=len(re.findall('(?='+sub_string+')', string))
这可能会提供一些上下文

import re
def count_substring(string, sub_string):
    count=len(re.findall('(?='+sub_string+')', string))
    return count
此代码使用<代码>?=是的文本。它告诉正则表达式进程搜索下一个匹配项,也搜索上一个匹配项


,-您可以看到有正向前瞻(1)和无正向前瞻(2)的区别。

“?=”是正向前瞻断言的一部分。您正在捕获多达的匹配项,但不包括子字符串

出于您的目的,这可能更简洁

count = len(re.findall(sub_string, string))
这里可以找到对正则表达式断言的更全面的解释。

(?=…)
将沿重叠匹配进行凹凸。这就是你要问的吗?看到这个了吗