python - 正则表达式:匹配括号内的整数
问题描述
我正在尝试删除字符串的括号末端,例如version = 10.9.8[35]
. 我正在尝试使用正则表达式将括号模式中的整数(因此所有 [35],包括括号)替换为空字符串,[\[+0-9*\]+]
但这也与不被括号包围的数字匹配。我没有正确使用 + 量词吗?
解决方案
您可以匹配数字的格式,然后匹配方括号之间的一位或多位数字。
在使用第一个捕获组的替换中r'\1'
\b([0-9]+(?:\.[0-9]+)+)\[[0-9]+\]
\b
字边界(
捕获组 1[0-9]+
匹配 1+ 个数字(?:\.[0-9]+)+
匹配 a.
和 1+ 数字并重复 1 次或多次
)
关闭组\[[0-9]+\]
匹配方括号之间的 1+ 个数字
例如
import re
regex = r"\b([0-9]+(?:\.[0-9]+)+)\[[0-9]+\]"
test_str = "version = 10.9.8[35]"
result = re.sub(regex, r'\1', test_str)
print (result)
输出
version = 10.9.8
推荐阅读
- sql - 如何从日期检查日期名称。但是从程序来看,我的日期错误,所以请帮助我
- node.js - nodejs中的参数问题
- mongodb - 如何将 mongo 独立转换为 Windows 10 上的副本集?
- javascript - 如何在标题组件中使用效果(ReactJS/Next.js)
- c - 带有管道的多进程程序中的意外 scanf 行为
- web-component - connectedCallback 中的 lit-element getElementById 返回 null
- docker - 推送到 GitLab 容器注册表不再有效
- kubernetes - Kubernetes 服务无法相互通信
- javascript - 该算法是否有将列表转换为树的名称?
- java - 发布请求返回 java.lang.NullPointerException