2011-03-24 42 views
0

任何人都可以向我解釋爲什麼這是返回TRUE?有7個Z,但它應該返回FALSE,因爲我已經在正則表達式中設置了最大值6。php preg_match返回意想不到的真

preg_match('/z{4,6}/', "zzzzzzz") 

回答

5

這是因爲你的字符串包含一個4到6'z的子串。如果你想要對整個字符串進行匹配,你必須在你的正則表達式中加入錨。

/^z{4,6}$/ 

/\Az{4,6}\z/ 
+1

@克里斯:澄清一下,^和$分別開始和結束字符串(或換行,如果使用調節劑,但事情讓事情複雜化)。所以這裏的正則表達式是「字符串的開始,接下來是4到6個字符,然後是字符串的結尾」 – 2011-03-24 02:05:31

+0

啊,這是完全合理的,謝謝你們。 – Chris 2011-03-24 02:11:14