.NET正则表达式:获取第二批数字

时间:2015-07-01 11:23:26

标签: .net regex vb.net numeric

我的RegEx出了问题。我想只获得第二批数字。

>>示例文字:

[xxx] 20 xxxx XXX [0.500 yyy] 
[xxx] 20 xxxx XXX [2.000 ]

>>样本RegEx:

[[0-9.]+(?:[Ee][0-9.]*)?[DdFf]?]

但我得到了这个结果:

enter image description here

我只想要第二批编号(0.500 & 2.000)

我哪里出错了?

非常感谢任何替代解决方案。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试以下基于前瞻性的正则表达式。

\d+(?:\.\d+)?(?=\D*$)

答案 1 :(得分:0)

这是一个替代解决方案,它基于[之前的数字位置:

(?<=\[)[0-9.]+

或者,如果你想只允许1个点:

(?<=\[)[0-9]+(.[0-9]+)?

请参阅regex demo

在C#中,

var matches = Regex.Matches(@"(?<=\[)[0-9]+(.[0-9]+)?").Cast<Match>().Select(p => p.Value).ToList();