c#中的正则表达式用逗号表示数字

时间:2012-07-12 15:08:47

标签: c# regex

我想使用RegEx来验证输入是

空 - >到100

例如:0或1或10,1或20.2或99

仅正值,0或null值为100,并接受点和逗号。 有人可以给我正确的C#正则表达式吗?

非常感谢:)

4 个答案:

答案 0 :(得分:0)

试试这个(如果有逗号或句号,则至少需要一个以下数字):

^\d*(?:(?:\.|\,)\d+)?$

这些请求的绝佳工具:http://regexpal.com/

此致

答案 1 :(得分:0)

可以在这里找到许多用于数字正则表达式的样本

Regex Lib

答案 2 :(得分:0)

正则表达式是关于匹配字符。它不了解数字。

尝试使用double.TryParse()解析它,如果由于字符串,代替.而失败,请将,替换为.,然后再试一次。

答案 3 :(得分:0)

试试这个:

(100|\d{1,2}[.,]\d+)

但在这里使用Double.Parse()更为正确。

string str = '10,1';
bool valid = false;
double num = -1;

str = str.Replace(",", ".");

if (String.IsNullOrEmpty(str)) {
    valid = true;
} else {
    try {
        num = Double.Parse(str);
    } catch (Exception ex) {
        valid = false;
    }

    if (num >= 0 && num <= 100) {
        valid = true;
    }
}

*为什么我不使用Double.TryParse()

可悲的是,未能解析会使结果0达到有效状态。