2011-04-12 106 views
0

我試圖轉義方括號內的括號。轉義正方括號內的正則表達式

$pattern = "/^[a-zA-Z0-9 _-\(]{1,25}$/"; 
$str = "TEST (ok)"; 

if (preg_match($pattern, $str)) { 
    echo "<br />OK"; 
} else { 
    echo "<br />FAIL"; 
} 

這給我的警告:

警告:的preg_match():編譯 失敗:範圍亂序在 字符類在 /var/www/test.php偏移15在線6
失敗

外方括號中的轉義工作正常。

任何想法?

回答

2

你需要躲避連字符,以及...書面,它將從下劃線匹配(ASCII 95)左paren(ASCII 40)。

0

逃避連字符,或者通過移動到前面或焦炭類列表回到