RegEx匹配点之前的2位数和点之后的一位数(仅0或5)

时间:2013-10-09 14:31:28

标签: c# .net regex

我需要一个正则表达式,它将匹配点之前的一位或两位数以及点之后的一位数(0或5)。

我尝试了至少一个小时,我生气了......

可能的结果应该是:

5,0
5,5
30,0
30,5 etc.

如果只插入一个数字,则需要如下结果:

5 - > 5,0

有人可以帮助我吗?非常感谢!!

3 个答案:

答案 0 :(得分:2)

你只想检查一个或两个数字,然后是点文字,以及'0'或'5'。

^\d{1,2}\.[05]$
但是,这并不能处理单个数字。没有一种简单的方法可以匹配同一个正则表达式中匹配一个或两个的一个数字,所以你可以使用第二个正则表达式:

^\d$

如果你得到任何匹配,那么将它转换为double / float。

答案 1 :(得分:1)

尝试以下正则表达式...

  

(?:\ d {1,2}(=)|(小于=)[50]??)

答案 2 :(得分:0)

string regex=@"(?<b>\d{1,2})(?<a>[.]0|[.]5)?";
Match m=Regex.Match(input,regex);
string result=m.Groups["b"].Value+","+m.Groups["a"].Value==""?0:m.Groups["a"].Value;

以上代码会为输入

提供这些结果
550.57 => 50,5    
644 => 44,0