关于preg_match的问题

时间:2011-09-09 12:34:46

标签: php regex preg-match

我在PHP中有一个问题:

使用 preg_match 时,为什么#^(([a-z]{2})/)?(([a-z\-]{3,})/(([a-z\-]{3,}))?)?$#iab/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 ()

2 个答案:

答案 0 :(得分:3)

因为在编写正则表达式时,需要在cde之后使用斜杠。 ab/cde/应匹配。

答案 1 :(得分:1)

[a-z - ] {3,} = 3个或更多字符