繁体   English   中英

PHP preg_replace()错误,带正则表达式

[英]PHP preg_replace() error with regular expression

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

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

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

这很完美。 当我尝试通过preg_replace()在PHP中使用它时,出现错误消息:未知的修饰符'['

代码段现为

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

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

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

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

感谢您的输入

您需要在模式中添加定界符。 在JavaScript中,这些是/之前和之后的模式。 您可以为PHP使用相同的名称,但我喜欢使用~

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM