我在PHP中有一个问题:
使用 preg_match 时,为什么#^(([a-z]{2})/)?(([a-z\-]{3,})/(([a-z\-]{3,}))?)?$#i
与ab/cde/fgh
匹配且与ab/cde
不匹配?
(我的意思是:
preg_match_all('#^(([a-z]{2})/)?(([a-z\-]{3,})/(([a-z\-]{3,}))?)?$#i','ab/cde/fgh',$match)
$match = Array
(
[0] => ab/cde/fgd
[1] => ab/
[2] => ab
[3] => cde/fgd
[4] => cde
[5] => fgd
[6] => fgd
)
和
preg_match_all('#^(([a-z]{2})/)?(([a-z\-]{3,})/(([a-z\-]{3,}))?)?$#i','ab/cde',$match)
$match = Array ()
答案 0 :(得分:3)
因为在编写正则表达式时,需要在cde
之后使用斜杠。 ab/cde/
应匹配。
答案 1 :(得分:1)
[a-z - ] {3,} = 3个或更多字符