- ベストアンサー
正規表現にて特定のURLのフォルダ以降を削除
ウェブマスターツールにてワードプレスタグの URL削除を考えております。 そこで、 http://www.example.com/blog/tag/ 上記URLの/tag/以降のURLアドレスを一括で削除する場合、 どのような正規表現になりますでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#244856
回答No.1
「以降」ということはそれ自身も含めて削除ということですよね? 「RFC3986定義の厳密なHTTP URIの正規表現」をPHP用に最適化 http://qiita.com/mpyw/items/1e422848030fcde0f29a この基本実装例の$regexを使います。これを使えば判定が少し難しい「どこまでをURLと見なすか」という問題に簡単に対処できます。もちろんこれ専用に正規表現を作りなおしてもいいですが、面倒なので「とりあえずURLにマッチさせてそのコールバック関数内で更に詳細な判定を続ける」ということにします。 <?php $regex = ...; $callback = function ($m) { if (strpos($m[0], 'http://www.example.com/blog/tag/') === 0) { return 'http://www.example.com/blog'; } else { return $m[0]; } }; $html = ...; $html = preg_replace_callback($regex, $callback, $html);
お礼
ありがとうございました。