在php里面,mongo模糊查询某些带特殊符号的字符串,发现查不到结果。于是,一顿找资料,发现:必须将带转义特殊字符的字符串进行转义处理,才能匹配到结果。
封装了一个PHP版本的mongo模糊查询转义特殊字符的方法,如下所示:
/**
* 转义正则特殊字符 ($()*+.[]?\^{},|)
*
* @param originStr
* @return
*/
public static function escapeExprSpecialWord($originStr) {
$retStr = $originStr;
$fbsArr = ["\\", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|" ];
foreach ($fbsArr as $value) {
$retStr = str_replace($value, "\\" . $value, $retStr);
}
return $retStr;
}
试了下,还是比较好使的。希望对大家有所帮助。