我试图使用以下代码从我的字符串中提取数字:
var mat = Regex.Match(stringValue, @"\d+").Value;
Run Code Online (Sandbox Code Playgroud)
但是当stringValue包含像"($ 23.01)"这样的小数时,它只提取23而不是23.01.我怎样才能得到decimal23.01 的值?
你有没有试过这个例子:
string inputStr = "($23.01)";
Console.WriteLine(Regex.Match(inputStr, @"\d+.+\d").Value);
Run Code Online (Sandbox Code Playgroud)
或者你可以试试这个 LinqSolution:
Console.WriteLine(String.Concat(inputStr.Where(x=> x=='.'||Char.IsDigit(x))));
Run Code Online (Sandbox Code Playgroud)
尝试以这种方式解决问题.十进制数具有以下功能:
\d+)\.?)\d+)由于最后两个特征是相关的,我们可以把它放在一个组中并添加一个?量词:(\.\d+)?.
所以现在我们有了整个正则表达式: \d+(\.\d+)?
如果你想匹配十进制数字.01(前面没有0),你可以|用来表示"或"并添加另一个案例(\.\d+).基本上:(\d+(\.\d+)?)|(\.\d+)
| 归档时间: |
|
| 查看次数: |
5610 次 |
| 最近记录: |