正则表达式匹配点前的 2 位数字和点后的一位数字(仅 0 或 5)

本文关键字:数字 一位 正则表达式 | 更新日期: 2023-09-27 18:34:31

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

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

可能的结果应该是:

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

如果只插入一个数字,它想要的结果如下:

5 --> 5,0

有人可以帮助我吗?多谢!!

正则表达式匹配点前的 2 位数字和点后的一位数字(仅 0 或 5)

您只想检查一位或两位数字,后跟点文字,以及"0"或"5"。

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

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

^'d$

然后,如果您获得任何匹配项,请将其转换为双精度/浮点数。

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

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

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