你能帮我解决这个正则表达式吗,它应该允许这些数字: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)
答案 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
希望有用。