2012-02-17 47 views
0

我遇到了一個php正則表達式,下面提到,我不知道爲什麼\q\用在它裏面,有人能幫我理解嗎?下面的php正則表達式評估的是什麼?

$strBuildTitle="SOME URL"; 
$patterns[0] = "/[^a-zA-Z0-9\q\ ]/";   
$replacements[0] = " "; 

$strBuildTitle = preg_replace($patterns, $replacements, $strBuildTitle); 

我相信它會嘗試從給定的URL中刪除任何非字母數字字符,不知道爲什麼\q\在這裏使用。是否與刪除引號有關?

回答

2

\q\無效escape sequences

在雙引號中的字符串,它是PHP的政策忽略那些與他們明顯的價值取代它們,這意味着只需\成爲\q成爲q。後一種情況已由[a-z]覆蓋。

+0

Nah。在未知的C字符串轉義之前,PHP將保持反斜槓。含義'「\ q」'將在字符串值中保留'\ q',直到達到PCRE。在這種情況下,它將PCRE等同於字母'q'。 – mario 2012-02-17 23:19:14

+0

只是好奇。什麼是'打印'\ j「'給你? – 2012-02-18 09:36:04

+0

'<?打印「\ j」; ?>'給我一個'... \ j ...'的輸出 – mario 2012-02-18 09:42:12