php如何为preg_match转义字符串?

时间:2014-04-12 13:08:54

标签: php

我正在尝试传递一个字符串

  preg_replace('/'.preg_quote($my_str).'/i', '', $string);

但是我收到了错误

preg_replace(): Unknown modifier '\'

有没有其他解决方案来逃避这些反斜杠?

2 个答案:

答案 0 :(得分:0)

将分隔符传递给preg_quote

的第二个参数
echo preg_replace('/'.preg_quote("$my_str",'~').'/i', '',$string );
                                            ^

答案 1 :(得分:0)

你的$ my_str中包含/个字符,你用它作为正则表达式分隔符。所以你有两个解决方案,

一,将分隔符/替换为变量中不包含的任何其他内容。例如~

preg_replace('~'.preg_quote($my_str).'~i', '', $string);
              ^                       ^

第二个解决方案,在/

之后将所有\/替换为$my_str preg_quote
$my_str = str_replace('/', '\/', preg_quote($my_str));
$some_str = preg_replace('/'.$my_str.'/i', '', $string);