python - '(?=' 和 ')' 在这里做什么?
问题描述
这里的代码是找出子字符串的数量。我尝试了其他方法,但使用这一行代码更短并且工作方式相同。
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
推荐阅读
- paperjs - 如何手动使用 PaperScript.compile/execute/load?
- python - 覆盖类继承的属性
- python - 递归函数的问题
- json - 嵌套的 Json 问题我如何获取这些数据?
- plsql - PLSQL 用多个集合更新多行
- excel - 排序功能正在崩溃文件
- java - 使用嵌套的 if 条件编写递归下降解析器
- ruby-on-rails - Rails 6 中类似 Redmine 的应用程序插件系统
- powershell - 用于在 IIS 高级日志记录的日志定义中启用日志记录字段的 Powershell 命令
- css - 我想用一个额外的类包围我所有的 scss 生成的 css