我已经通过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。
感谢您的输入
答案 0 :(得分:1)
您需要在模式中添加分隔符。在JavaScript中,这些是模式之前和之后的/
。您可以在PHP中使用相同的内容,但我更喜欢使用~
。
$pattern = "~(?<=href=(".'"'."|'))[^".'"'."']+(?=(".'"'."|'))~";