C# 正则表达式仅限制“quot;的匹配&引用;困难

C# 正则表达式仅限制“quot;的匹配&引用;困难,c#,regex,C#,Regex,我正在为WP7开发一个应用程序,并将其用于我的正则表达式 newsystem.Text.RegularExpressions.Regex(@“\D\.{1}”) 基本上,我希望用户只输入数字数据,其中一个允许双,当用户只输入一个周期时,它会工作,但一旦添加另一个周期,应用程序就会崩溃 new System.Text.RegularExpressions.Regex(@"^\s*[0-9]+(\.[0-9]+)?\s*$"); 这将检查整个字符串(以^和$锚定)并匹配“合法”数字 请注意,由于十

我正在为WP7开发一个应用程序,并将其用于我的正则表达式

newsystem.Text.RegularExpressions.Regex(@“\D\.{1}”)

基本上,我希望用户只输入数字数据,其中一个
允许
,当用户只输入一个周期时,它会工作,但一旦添加另一个周期,应用程序就会崩溃

new System.Text.RegularExpressions.Regex(@"^\s*[0-9]+(\.[0-9]+)?\s*$");
这将检查整个字符串(以
^
$
锚定)并匹配“合法”数字


请注意,由于十进制分隔符可能不同,因此这不适合在不同区域设置下运行的应用程序中使用。为什么不改为执行
double.TryParse()
来检查输入?

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

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

当然,这不会拒绝像
123.456.789
这样的东西,但它会接受像
123.456 e+5

这样的东西,即使使用了单个
,应用程序也会崩溃,我只想输入数字数据。定义“崩溃”。你只要求一个点,这是它匹配的。但我将对其进行编辑以将其限制为数字…;-)我所说的崩溃是指应用程序刚刚关闭并在调试器中显示错误。我同意(几分钟前我确实建议使用
double.TryParse()
以及;-))与往常一样,StackOverflow中存在竞争条件。发布答案不是非常线程安全;)