0

curl_exec を介して Web ページを文字列に返しました。次に、すべてのハイパーリンクを文字列 javascript:void() に置き換えようとしています。

http://regexhero.net/tester/でテストした正規表現は

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

これは完全に機能します。PHP で preg_replace() を使用して使用しようとすると、次のエラーが表示されます: 不明なモフィファイア '['

コードスニペットは

$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 に答える