我对使用以下正则表达式有疑问:
private Regex _regexDecimals = new Regex(@"[^.,0-9]");
当我在上面使用时,结果是我可以使用的数据
1 0,5 ,5 1.0
但是当我输入.5时,会导致尝试将其转换为double的错误。
现在我做了以下正则表达式:
private Regex _regexDecimals = new Regex(@"[0-9]+(?:\.[0-9]*)?");
这与使用点匹配,但不匹配使用逗号。如何使用逗号进行匹配?
答案 0 :(得分:4)
将\.
替换为[.,]
答案 1 :(得分:1)
如果您的最终目标是将其转换为双倍,则应使用Double.TryParse代替。
答案 2 :(得分:0)
你有没有试过这样的事情:
public static Regex regex = new Regex(
"\\d*[.,]?\\d+",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);
'\ d'相当于[0-9]