Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于验证双值的正则表达式_C#_Regex_Visual Studio 2008 - Fatal编程技术网

C# 用于验证双值的正则表达式

C# 用于验证双值的正则表达式,c#,regex,visual-studio-2008,C#,Regex,Visual Studio 2008,我想用一个正则表达式来验证一个双精度值。我承认我对regex一窍不通,真的应该买本书。。。无论如何,范围很大,因此: .01到99.99是范围,前导的“00”是可选的,“.”也是可选的,尾随的“.00”也是可选的。因此,用户可以输入0.100.01、0.11、1、1.01.00,这些都是有效的 谢谢,r.而不是正则表达式,为什么不使用double的TryParse方法呢 string[] sa = new string[] { "00.01", "1.00", "xx" }; double d;

我想用一个正则表达式来验证一个双精度值。我承认我对regex一窍不通,真的应该买本书。。。无论如何,范围很大,因此:

.01到99.99是范围,前导的“00”是可选的,“.”也是可选的,尾随的“.00”也是可选的。因此,用户可以输入0.100.01、0.11、1、1.01.00,这些都是有效的


谢谢,r.

而不是正则表达式,为什么不使用double的
TryParse
方法呢

string[] sa = new string[] { "00.01", "1.00", "xx" };
double d;
bool isValid;
foreach (string s in sa)
{
    isValid = double.TryParse(s, out d) && d >= 0.01d && d <= 99.99d;
    Console.WriteLine("{0}: {1}", s, isValid.ToString());
}
string[]sa=新字符串[]{“00.01”、“1.00”、“xx”};
双d;
bool是有效的;
foreach(sa中的字符串s)
{

isValid=double.TryParse(s,out d)和&d>=0.01d和&d而不是正则表达式,为什么不使用double的
TryParse
方法呢

string[] sa = new string[] { "00.01", "1.00", "xx" };
double d;
bool isValid;
foreach (string s in sa)
{
    isValid = double.TryParse(s, out d) && d >= 0.01d && d <= 99.99d;
    Console.WriteLine("{0}: {1}", s, isValid.ToString());
}
string[]sa=新字符串[]{“00.01”、“1.00”、“xx”};
双d;
bool是有效的;
foreach(sa中的字符串s)
{
isValid=double.TryParse(s,out d)和&d>=0.01d和&d
您可以在这里尝试:


您可以在此处尝试:

&&d>=0.01m&&d+1,建议不要使用正则表达式,尽管您的答案不完整-您应该编辑它以添加范围检查。感谢您建议使用tryparse()由于某些原因,我一直在使用reg表达式,并陷入了思维定势…tryparse更容易实现…哈哈,谢谢。添加了范围检查,错过了这一部分。有时需要regex。例如,在使用属性时:[RegularExpression(concentregex,ErrorMessage=ConstValidationMessage)]
&&d>=0.01m&&d+1,建议不要使用正则表达式,尽管您的答案不完整-您应该编辑它以添加范围检查。感谢您建议使用tryparse()由于某些原因,我一直在使用reg表达式,并陷入了思维定势…tryparse更容易实现…哈哈,谢谢。添加了范围检查,错过了这一部分。有时需要regex。例如,在使用属性时:[RegularExpression(concentregex,ErrorMessage=ConstValidationMessage)]这实际上也接受3或4位整数(100-999和1000-9999)除了空字符串和字符串Mark Byers外,它也适用于引用的所有示例:0.100.01、0.11、1、1.0 1.00。感谢您指出@eldarerathis-它也匹配3/4位整数和空字符串:-/这实际上也接受3或4位整数(100-999和1000-9999)除了空字符串和字符串Mark Byers外,它也适用于所有引用的示例:0.100.01、0.11、1、1.0 1.00。而且,感谢您指出@eldarerathis-它还匹配3/4位整数和空字符串:-/您在C#(.NET)中执行此操作regex?如果是这样的话,你应该去掉visual studio的标签;VS有它自己的regex风格,这与.NET非常不同。(如果有人建议使用
:n
,他们说的是VS。)谢谢Alan,我会记住这一点。你是用C#(.NET)来做的regex?如果是这样的话,你应该去掉
visual studio
标签;VS有自己的regex风格,这与.NET非常不同。(如果有人建议使用
:n
,他们是在说VS。)谢谢Alan,我会记住这一点。