我正在尝试使用以下代码从字符串中提取数字:
var mat = Regex.Match(stringValue, @"\d+").Value;
但是,当stringValue
包含“($ 23.01)”这样的小数时,它将仅提取23而不是23.01。我如何获得decimal
值23.01?
尝试以这种方式解决问题。十进制数字具有以下功能:
\d+
)\.?
)\d+
)之后加上一个或多个数字由于最后两个功能是相关的,因此我们可以将其放在一个组中并添加一个?
量词:(\.\d+)?
。
所以现在我们有了整个正则表达式: \d+(\.\d+)?
如果您想匹配十进制数字.01
(前面没有0),则可以仅|
表示“或”并添加另一种大小写(\.\d+)
。基本上:(\d+(\.\d+)?)|(\.\d+)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句