C# 验证十进制数的正则表达式
正则表达式应符合以下条件。点之前和之后的元素数量可以是任意的。只允许1点,第一个位置只允许负号。我不需要逗号 例如:C# 验证十进制数的正则表达式,c#,.net,regex,C#,.net,Regex,正则表达式应符合以下条件。点之前和之后的元素数量可以是任意的。只允许1点,第一个位置只允许负号。我不需要逗号 例如: 1 -1 -1. 1. 1.2 -.2 -0.2 000.300 以上所有表达式都应为真 所以如果我分手 在第一个位置有一个可选的负号 点前零个或多个数字 点是可选的。最多可发生一次。它也可以是纯整数 点后有0个或多个数字 任何帮助都将不胜感激。1)首先请选择负号: ^:字符串的开头 -:负号 ?:使前面的字符成为可选字符 2) 零或多个数字 /d:数字 *:匹配前一项的尽可能
1
-1
-1.
1.
1.2
-.2
-0.2
000.300
以上所有表达式都应为真
所以如果我分手
总之:^-?/d*?/d*您可能想要的是:
^-?\d*\.?\d*
这将给您一个可能的负号(-?
),后跟任意位数(
\d*
),后跟一个可能的小数点(
\.
),后跟小数点后任意数量的尾随数字(
\d*
)因为您只想验证它是否是有效的浮点,@MarcinJuraszek有一个很好的观点,所以您可能不想在这里使用regex 这是我的解决方案 专业人士
- 用户可以指定精度
- 接受逗号或点
- 接受负值
- 接受整数
- 对于.0或0不起作用:( [-]?\d{1,18}(?:[,.]\d{1,2})$
我喜欢那个找到经过测试的好正则表达式的网站:)这里有一个:^[-+]?\d+(\.\d+)$为什么要使用正则表达式?您可以尝试使用decimal.TryParse()代替。可能的重复项和一些others@MarcinJuraszek没错,每个人都在使用dotNet…;)@问题中的Ia之前被标记为
C
标记,并且在标题中有C
。这就是我发表评论的原因。顺便说一句,我不知道为什么@konrad删除了那个标签……用这个解决方案,你会使用什么Regex
方法?我目前正在将它与IsMatch
一起使用,例如:Regex.IsMatch(string,@“^-?\d*\。?\d*”)
,但没有得到任何结果。它接受无效的输入(4.)。如果有一个点,后面必须有一个数字。你是怎么做到的?