我的RegEx
出了问题。我想只获得第二批数字。
>>示例文字:
[xxx] 20 xxxx XXX [0.500 yyy]
[xxx] 20 xxxx XXX [2.000 ]
>>样本RegEx:
[[0-9.]+(?:[Ee][0-9.]*)?[DdFf]?]
但我得到了这个结果:
我只想要第二批编号(0.500 & 2.000)
。
我哪里出错了?
非常感谢任何替代解决方案。
谢谢!
答案 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();