我需要一个正则表达式来匹配句子:
1:99.99.99
2:99.99.99,99
逗号是可选的,如果给定,则必须有1或2位数字。我有这个与第一句匹配的正则表达式,但与第二句不匹配:
^(?:[0-9]{1,2}\.){2}[0-9]{1,2}$
答案 0 :(得分:1)
试试这个:
^(?:[0-9]{1,2}\.){2}[0-9]{1,2}(,[0-9]{1,2})?$
(未经测试,写在我的头顶)
编辑:中间有一个随机$
答案 1 :(得分:1)
试试这个
^(?:[0-9]{1,2}\.){2}[0-9]{1,2}(,[0-9]{1,2})?$
更好的exp:
(,[0-9]{1,2})?
[0-9]{1,2}
任何数字最多限制2
(,?[0-9]{1,2})?
这整个群体最多限制1
答案 2 :(得分:1)
您可以使用以下内容。
^(?:[0-9]{1,2}\.){2}[0-9]{1,2}(?:,[0-9]{1,2})?$
请参阅Live demo
正则表达式:
^ the beginning of the string
(?: group, but do not capture (2 times):
[0-9]{1,2} any character of: '0' to '9' (between 1 and 2 times)
\. '.'
){2} end of grouping
[0-9]{1,2} any character of: '0' to '9' (between 1 and 2 times)
(?: group, but do not capture (optional)
, ','
[0-9]{1,2} any character of: '0' to '9' (between 1 and 2 times)
)? end of grouping
$ before an optional \n, and the end of the string