【发布时间】:2012-05-26 06:58:12
【问题描述】:
目前,我正在使用这个:
if (preg_match ('/^[a-zA-Z0-9_]+([a-zA-Z0-9_]*[.-]?[a-zA-Z0-9_]*)*[a-zA-Z0-9_]+$/', $product) ) {
return true;
} else {
return false
}
比如我要匹配:
pro.duct-name__pro.duct.namep.r.o.d_u_c_t.n-a-m-e
但我不想匹配:
pro..ductname.productname--productname.-productname
【问题讨论】:
-
编辑了示例,使其更易于理解。是否需要进一步解释。请让我知道,我很乐意进一步澄清。
-
为什么
pro..ductname不应该匹配?点在中间? -
如果
dot不会出现两次或任何字符? -
因为,我不想连续匹配两次
dot或dash。Dot和dash可以在中间出现多次,但不能连续出现。现在,如果dot和dash一个接一个出现会怎样?我们允许product.-name -
问:“如果只有
dot不会出现两次或任何字符?” A:Dot和dash不会出现两次,任何其他字母数字字符都可以出现两次,ppppppppp应该匹配。
标签: php regex preg-match