正则表达式限制仅匹配“。”困难

时间:2010-11-25 21:09:55

标签: c# regex

我正在为WP7开发一个应用程序并将其用于我的RegEx

new System.Text.RegularExpressions.Regex(@"\D\.{1}");

基本上我希望用户只输入允许.允许一个double的数字数据,当用户输入的时间仅为1个周期但是只要添加了另一个句点,应用就会崩溃

2 个答案:

答案 0 :(得分:2)

我个人不会使用正则表达式。

bool isInputGood(string input) {
    double d;
    return double.TryParse(input, out d);
}

当然,这不会拒绝123.456.789之类的内容,但它会接受类似123.456 e+5

的内容

答案 1 :(得分:0)

new System.Text.RegularExpressions.Regex(@"^\s*[0-9]+(\.[0-9]+)?\s*$");

这将检查整个字符串(以^$为基础)并匹配“合法”数字。

请注意,这不适用于可能在不同区域设置上运行的应用程序,因为小数分隔符可能会有所不同。为什么不通过double.TryParse()来检查输入?