3

我需要用 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} 匹配一次,它将不匹配任何内容,因为最后一个块没有点。

所以我想不出该怎么想...请指教

4

2 回答 2

4

您可以使用:

^[\da-z]{3}(?:\.[\da-z]{3})*$
于 2012-07-11T11:14:41.927 回答
0
/^(?:[\da-z]{3}\.)*[\da-z]{3}$/
于 2012-07-11T11:18:58.663 回答