[英]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.