regex - 正则表达式:如何在其他捕获字符之前匹配一个字符?
问题描述
我正在尝试匹配要确保第一个字符不是等号的字符串列表,不要捕获该匹配项。因此,对于一个列表(摘自 pip freeze),例如:
ply==3.10
powerline-status===2.6.dev9999-git.b-e52754d5c5c6a82238b43a5687a5c4c647c9ebc1-
psutil==4.0.0
ptyprocess==0.5.1
我希望捕获的输出如下所示:
==3.10
==4.0.0
==0.5.1
我首先认为使用负前瞻(?![^=])
会起作用,但是使用正则表达式(?![^=])==[0-9]+.*
最终会捕获我不想要的行:
==3.10
==2.6.dev9999-git.b-e52754d5c5c6a82238b43a5687a5c4c647c9ebc1-
==4.0.0
==0.5.1
(?:[^=])
我还尝试使用带有正则表达式的非捕获组,(?:[^=])==[0-9]+.*
但最终捕获了我也不想要的第一个字符:
y==3.10
l==4.0.0
s==0.5.1
所以问题是这样的:如何在正则表达式的其余部分之前匹配但不捕获字符串?
解决方案
负面的看法将是去:
(?<!=)==[0-9.]+
另外,这是我喜欢使用的网站:
当然,如果您建议您正在使用哪个引擎/软件,它有时会有所帮助,这样我们就知道可能存在哪些限制。
推荐阅读
- mysql - 验证 SQL Server 表中的迁移记录
- google-sheets - 如何在堆积条形图中使用数据范围公式 - 谷歌表格
- jestjs - AWS CDK Jest 单元测试资源具有 DeletionPolicy
- python-pptx - python-pptx:如何在新插入的幻灯片中查询文本占位符的“默认”值
- java - Java中带有一些特殊字符的String到Map的转换
- jquery - 在 Polymer 中动态创建的行中调用函数
- node.js - 避免缩小流星中的某些包
- android - 创建了一个自定义布局对话框,但在对话框窗口外单击时无法关闭对话框
- r - 管道列名到断言
- r - MCAR 测试错误(来自 naniar 包):变异和“条件数”的问题