正则表达式问题

时间:2009-12-14 08:24:47

标签: c# regex double decimal

我对使用以下正则表达式有疑问:

private Regex _regexDecimals = new Regex(@"[^.,0-9]");

当我在上面使用时,结果是我可以使用的数据

1 0,5 ,5 1.0

但是当我输入.5时,会导致尝试将其转换为double的错误。

现在我做了以下正则表达式:

private Regex _regexDecimals = new Regex(@"[0-9]+(?:\.[0-9]*)?");

这与使用点匹配,但不匹配使用逗号。如何使用逗号进行匹配?

3 个答案:

答案 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]