在c#

时间:2015-07-20 19:28:16

标签: c# regex

我一直在尝试验证一个数字,它将小数点限制为3点,数字长度(包括点数)为6,但无法正确验证。到目前为止,我所拥有的是:

^([0-9]([.][0-9]{1,3})?){1,6}$

如何更改上面的正则表达式以正确验证?感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用这个基于前瞻性的正则表达式来检查长度:

^(?=[0-9.]{1,6}$)[0-9]+(?:\.[0-9]{1,3})?$

RegEx Demo

答案 1 :(得分:2)

对于总长度,我只检查字符串长度:

if(s.Length <= 6 && Regex.IsMatch(s, @"^[0-9]+(\.[0-9]{1,3})?$")) {

}

因为表达式末尾的{1,6}表示在其前面的术语中重复0到6次(在您的情况下,整数)。它不限制字符串的长度。