1

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

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

可能的结果应该是:

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

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

5 --> 5,0

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

4

3 回答 3

2

您只想检查一位或两位数字,后跟点字面量,以及“0”或“5”。

^\d{1,2}\.[05]$

不过,这并不能处理个位数。没有一种简单的方法来匹配您匹配一个或两个的同一个正则表达式中的单个数字,因此您可以使用第二个正则表达式:

^\d$

如果你得到任何匹配,然后将其转换为双精度/浮点数。

于 2013-10-09T14:35:14.047 回答
1

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

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

于 2013-10-09T14:37:53.273 回答
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
于 2013-10-09T14:37:19.333 回答