我在努力学习regex。我创建了这个/(\d?\.?\d?)/g
来提取逗号分隔的浮点数列表中的所有数字。就像这样:
1,2.2,3,4,5,6,7,8,9,10
https://regex101.com/r/aJ3eF2/2
但是这个模式在想要的匹配之间生成空匹配。
MATCH 1
1. [0-1] `1`
MATCH 2
1. [1-1] ``
MATCH 3
1. [2-5] `2.2`
MATCH 4
1. [5-5] ``
我想知道为什么会这样?以及如何修复它。
发布于 2014-12-27 05:31:00
您应该使用这个regex来修复这个行为:
(\d+(?:\.\d+)?)
或者更好地使用单词边界
(\b\d+(?:\.\d+)?\b)
regex给出的是空匹配,因为regex (\d?\.?\d?)
有可选的,即一个数字和小数点以及后面的数字。此外,您还需要使用量词+
使其匹配小数点两边的多个数字。
(?:...)
使它成为一个非捕获组。
发布于 2014-12-27 05:31:28
如果您不期望像.001
这样的东西,请使用(\d+\.?\d+)
https://stackoverflow.com/questions/27664640
复制相似问题