0

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

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

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

这完美地工作。当我尝试使用 preg_replace() 在 PHP 中使用它时,我收到错误:Unknown mofifier '['

代码片段是

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

我也尝试过像这样转义字符串

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

我在 Win 环境中编写脚本,但要在 LAMP 上运行。

感谢您的输入

4

1 回答 1

1

您需要在模式中添加分隔符。在 JavaScript 中,这些是/模式的前后。您可以对 PHP 使用相同的方法,但我喜欢使用它~

$pattern = "~(?<=href=(".'"'."|'))[^".'"'."']+(?=(".'"'."|'))~";
于 2012-12-04T02:05:10.143 回答