python - '(?='和 ')'在这里做什么?

标签 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

最佳答案

'?=' 是积极前瞻断言的一部分。您正在捕获最多但不包括您的 sub_string 的匹配项。

为了您的目的,这可能更简洁。

count = len(re.findall(sub_string, string))

可以在此处找到有关正则表达式断言的更全面的解释。 https://www.regular-expressions.info/lookaround.html

关于python - '(?='和 ')'在这里做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57063415/

相关文章:

python - 解析换行分隔文件

可选包装器的 JavaScript RegExp 和只有一个记住的部分?

c# - 英文字符、连字符和下划线的正则表达式

python - pyinstaller 捆绑 python 应用程序后如何修复 "ImportError: unable to find Qt5Core.dll on PATH"

python - 根据列子文本有条件地更改列数据类型

python - 为什么这些查询之间的 dynamodb 性能不同?

Ruby 正则表达式不忽略空格

python - 在 Linux 中调试 Python 文件

python - 贪婪的 Python RegEx 捕获组包含 "and"

javascript - 为什么我的正则表达式没有为我的文本输入返回正确的值?