浮点和百分比的正则表达式

时间:2011-09-12 15:12:25

标签: c# regex

我需要带有可选%符号的浮点数的正则表达式模式,如

12.32
12.32%
0.32
.32
.32%

浮点数左右两侧的任意数字长度。我需要这个来验证asp.net mvc app中的输入 的更新:
忘了以下组合

12%
35
45%

2 个答案:

答案 0 :(得分:8)

这个正则表达式应该为你做...

\d*\.\d+%?

这意味着......零个或多个数字(\d*)后跟一个句点(转义\.),后跟一个或多个数字(\d+),后跟可选的%( %?


更新:匹配整数

\d*\.?\d+%?

regex diagram

答案 1 :(得分:2)

\d*\.\d{1,}%?

这符合您的所有情况。

添加: 我在关于{1,}的评论中回答了这个问题:因为我不确定小数点后面的单个数字是否对你来说是一个有效的输入(你的所有例子在点之后至少有2位数)我没有不要使用加号表示法,而是明确指出数字位数。这里第一个数字表示最小数字和第二个数字(这里省略)点数之后的最大数字。如果您希望所有输入值在该点后至少有2位数,请使用{2,}代替{1,}