C# 正则数和小数点

C# 正则数和小数点,c#,regex,C#,Regex,你们中有谁能帮我用正则表达式来实现这一点: 123.123 123. 1323.2 1.2312 1,23 123123,32 123, 123412 总之,只有一个小数点,它可以是最后一个。。但大多数都不是第一个 但不是这个: 12.323.323 1213.. 12331...3123 .12313 ,123132 这意味着: a word boundary a digit one or more times a `.` or a `,` a digit zero or more ti

你们中有谁能帮我用正则表达式来实现这一点:

123.123
123.
1323.2
1.2312
1,23
123123,32
123,
123412
总之,只有一个小数点,它可以是最后一个。。但大多数都不是第一个

但不是这个:

12.323.323
1213..
12331...3123
.12313
,123132 
这意味着:

a word boundary
a digit one or more times
a `.` or a `,`
a digit zero or more times
a word boundary
单词边界的存在是为了防止正则表达式从数字中间匹配

这意味着:

a word boundary
a digit one or more times
a `.` or a `,`
a digit zero or more times
a word boundary
单词边界的存在是为了防止正则表达式从数字中间匹配

^\d+[\,]?\d*$

^字符串的开头 \d+1个或多个数字 [\.,]? 0或1十进制或逗号 \d*0或更多数字 $end of string。

这应该可以

^\d+[\,]?\d*$

^字符串的开头 \d+1个或多个数字 [\.,]? 0或1十进制或逗号 \d*0或更多数字
$end of string。

试试这个,它适用于您提到的所有情况


\d+\。\d+\,

试试这个,它适用于您提到的所有情况


\d+\。\d+\,

我对正则表达式的修复:\d+.\124;,\ d+\124,?
最后添加了“?”,它将适用于零值

我对正则表达式的修复:\d+。|,\d+|,?
最后添加了“?”,它将适用于零值

我建议的更少正则表达式更多解析。尝试decimal.Parse或double.Parse。123没有小数点怎么样?允许吗?我建议少正则表达式多解析。试试decimal.Parse或double.Parse。123没有小数点怎么样?允许吗?这是一个简单的,但它也将匹配a,或。它本身。要处理这种情况,您需要将其更改为处理单独的情况,如数字、前面、后面或两者。我将留给你,因为修改这个正则表达式将帮助你理解它这是一个简单的,但它也将匹配,或。它本身。要处理这种情况,您需要将其更改为处理单独的情况,如数字、前面、后面或两者。我将把它留给你,因为修改这个正则表达式会帮助你理解它,中间的部分是可选的。如果没有逗号或句点,则可以将其解释为一个或多个数字后跟零个或多个数字,从而导致歧义,并可能对某些引擎造成性能影响。此外,在他提供的示例中,十进制分隔符不是可选的。谢谢,我已经根据Woops编辑了它。。我犯了一个错误。。小数点或逗号必须是可选的..好的,我把它改成了backah好的。。。我的缺点是:中间的部分是可选的。如果没有逗号或句点,则可以将其解释为一个或多个数字后跟零个或多个数字,从而导致歧义,并可能对某些引擎造成性能影响。此外,在他提供的示例中,十进制分隔符不是可选的。谢谢,我已经根据Woops编辑了它。。我犯了一个错误。。小数点或逗号必须是可选的..好的,我把它改成了backah好的。。。那么我的错是:你需要逃避现实。使用\,或者它将匹配像123a123这样的东西。我在这里测试它,它可以工作!你需要逃离这个世界。使用\,或者它将匹配像123a123这样的东西。我在这里测试它,它可以工作!