正则表达式允许更多允许的数字

时间:2015-10-03 16:05:40

标签: regex vb.net

你能帮我解决这个正则表达式吗,它应该允许这些数字:123.56,1.26,6.36但它承认12345.56 12345.26 ...所以不要只允许三个数字,它允许五个数字。< / p>

这是我的正则表达式,验证是在VB.NET上,你可以帮我解决吗

Dim Vestatura As String = "^[0-9]{1,3}((.)[0-9]{1,2})?$"
        Dim Evaluar As Regex = New Regex(Vestatura)
        Dim match As Match = Evaluar.Match(txtCMS.Text)

2 个答案:

答案 0 :(得分:0)

您需要按顺序转义点以匹配文字点字符。因为未转义的点可以匹配任何角色。

Dim Vestatura As String = "^[0-9]{1,3}(([.])[0-9]{1,2})?$"

Dim Vestatura As String = "^[0-9]{1,3}(\.[0-9]{1,2})?$"

答案 1 :(得分:0)

试试这个字符串

^\d{1,3}(?:\.\d{1,2})?$

根据https://regex101.com/,对该数据使用该字符串......

1
12
123
1234
1.
12.
123.
1234.
1.1
12.1
123.1
1234.1
1.12
12.12
123.12
1234.12
1.123
12.123
123.123
1234.123

使用修饰符gm,会产生以下字符串匹配...

1
12
123
1.1
12.1
123.1
1.12
12.12
123.12

这些不匹配......

1234
1.
12.
123.
1234.
1234.1
1234.12
1.123
12.123
123.123
1234.123

希望有用。