PHP preg_replace()错误与正则表达式

时间:2012-12-04 02:01:11

标签: php preg-replace

我已经通过curl_exec将网页返回到字符串中。我试图用字符串javascript:void()替换所有超链接。

我在http://regexhero.net/tester/测试的正则表达式是

(?<=href=("|'))[^"']+(?=("|'))

这完美无缺。当我尝试在PHP中使用preg_replace()时,我得到错误:未知的mofifier'['

代码段是

$pattern = "(?<=href=(".'"'."|'))[^".'"'."']+(?=(".'"'."|'))";
$replacement = "javascript:void();";
$result = preg_replace($pattern,$replacement,$result) ;

我也试过像

那样转义字符串
$pattern = "(?<=href=(\"|'))[^\"']+(?=(\"|'))";

我在Win环境中编写脚本,但它是继续使用LAMP。

感谢您的输入

1 个答案:

答案 0 :(得分:1)

您需要在模式中添加分隔符。在JavaScript中,这些是模式之前和之后的/。您可以在PHP中使用相同的内容,但我更喜欢使用~

$pattern = "~(?<=href=(".'"'."|'))[^".'"'."']+(?=(".'"'."|'))~";