我需要检查preg_match的输入,它必须是以下格式:xxx.xxx.xxx 块的数量可以变化......这些都是有效输入的例子:
001
00a.00a
0fg.001
aaa.aaa.001
001.001.002.001.001.001
好吧,我可能会写一个正则表达式:
^([\da-z]{3}\.?)+$
但是这里出现了期间量词的问题。我的意思是如果我使用'?'匹配0或1次,即使在某处跳过点也会匹配,例如:
000.001.0010az001
然后,如果我使用{1}匹配一次,它将不匹配,因为最后一个块没有点。
所以我想不出怎么想......请建议
答案 0 :(得分:4)
您可以使用:
^[\da-z]{3}(?:\.[\da-z]{3})*$
答案 1 :(得分:0)
/^(?:[\da-z]{3}\.)*[\da-z]{3}$/