首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Regex组在需要的匹配中生成空匹配。

Regex组在需要的匹配中生成空匹配。
EN

Stack Overflow用户
提问于 2014-12-27 05:25:36
回答 2查看 35关注 0票数 1

我在努力学习regex。我创建了这个/(\d?\.?\d?)/g来提取逗号分隔的浮点数列表中的所有数字。就像这样:

代码语言:javascript
运行
复制
1,2.2,3,4,5,6,7,8,9,10

https://regex101.com/r/aJ3eF2/2

但是这个模式在想要的匹配之间生成空匹配。

代码语言:javascript
运行
复制
MATCH 1
1.  [0-1]   `1`
MATCH 2
1.  [1-1]   ``
MATCH 3
1.  [2-5]   `2.2`
MATCH 4
1.  [5-5]   ``

我想知道为什么会这样?以及如何修复它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-27 05:31:00

您应该使用这个regex来修复这个行为:

代码语言:javascript
运行
复制
(\d+(?:\.\d+)?)

或者更好地使用单词边界

代码语言:javascript
运行
复制
(\b\d+(?:\.\d+)?\b)

RegEx演示

regex给出的是空匹配,因为regex (\d?\.?\d?)可选的,即一个数字和小数点以及后面的数字。此外,您还需要使用量词+使其匹配小数点两边的多个数字。

(?:...)使它成为一个非捕获组。

票数 1
EN

Stack Overflow用户

发布于 2014-12-27 05:31:28

如果您不期望像.001这样的东西,请使用(\d+\.?\d+)

链接:https://regex101.com/r/pX7rL1/1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27664640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档