regex - 正则表达式不像预期的那么贪婪 /^(\d+)[^_]/
问题描述
正则表达式:/^(\d+)[^_]/gm
测试字符串:12_34
我希望这个正则表达式与测试字符串不匹配,因为贪婪\d+
地吃数字并且在.1
2
[^_]
_
但它出乎意料地只1
在 Group1 中匹配。我哪里错了?
我试图找到一个与测试字符串“12”或“12xx”中的数字匹配但与“12_xx”不匹配的正则表达式
示例:
https
://regex101.com/r/0QRTjs/1/
方言:最后我将使用 Microsoft System.Text.RegularExpressions。
解决方案
\d+
将匹配一位或多位数字。
由于您 append [^_]
,它后面只能跟一个非_
字符。
因此\d+
无法匹配12
,因为它后面跟着_
。
1
是第一个匹配组,因为它后面跟着2
which is not _
。
如果您只想匹配带有数字的行,则有一个非常简单的表达式:
^(\d+)$
推荐阅读
- azure-logic-apps - Azure 逻辑应用程序 - 如何为案例添加具有多个值的开关案例
- python - 用于句子嵌入的 KMeans
- python - discord.py bot 看不到成员
- reactjs - 为什么我的组件基于 redux 的 props 没有更新?
- regex - 正则表达式:匹配和提取浮点数
- reactjs - 工具提示未显示
- python - Django 在模板中使用两个不同的数据集填充表
- css - 这个布局可以用 Flexbox 完成吗
- reactjs - React 不会在状态更改时重新渲染
- java - Apache POI:迭代 docx.getBodyElements() 时如何获取页码