• ベストアンサー

正規表現にて特定のURLのフォルダ以降を削除

ウェブマスターツールにてワードプレスタグの URL削除を考えております。 そこで、 http://www.example.com/blog/tag/ 上記URLの/tag/以降のURLアドレスを一括で削除する場合、 どのような正規表現になりますでしょうか? よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
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);

ryoryu2002
質問者

お礼

ありがとうございました。

関連するQ&A

  • 正規表現について

    アメブロから独自ブログへ引越しを行うことになったのですが、 ペタしてね というリンク画像を毎ページに張り付けており、この画像リンクを一括で削除したいと思っています。 HTMLタグのパラメータが微妙にばらついており、正規表現の利用が必要かなと思っています。 専用のプラグインをインストールし、正規表現を利用して削除できることが分かったのですが、 正規表現の方法を数時間勉強してみましたが、結局どうすればいいのかわかりません・・・ 削除する画像リンクは以下のようなものです。 <a href="http://.........................."><img height="100" alt="ペタしてね" src="http://stat.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_18.gif" width="100" /></a> width や hight がページによって微妙に違うようです。 どちらさまか、上記のようなタグをマッチングさせる正規表現を教えていただけませんでしょうか。

    • ベストアンサー
    • PHP
  • YouTubeのURLを正規表現に変換したい

    YahooPipesを試行錯誤で利用中です。 例えば、YoutubeのURLで、 http://youtube.com/watch?v=PwEDle02doc 上のようなYoutubeのアドレスの http://youtube.com/watch?v= を正規表現で指定して、PwEDle02doc だけを取り出したいのですが、うまく正規表現で書くことができせん。 http://youtube.com/watch?v= を正規表現で表すと、どのようになりますでしょうか? 正規表現について、いろいろ調べましたが、行き詰ってしまいました。 どうかご教授お願いします。

  • URL正規表現

    以下のようなURLにもマッチする、正規表現を教えてください http://php.url-dummy.com/program:php:etc:callback_function

    • ベストアンサー
    • PHP
  • URLを正規表現に変換したい

    AutopagerizeのSITEINFOを作るため、URLを正規表現というものに変換したいのですが、 プログラミング関係の知識はないので、何をどうすればいいのかサッパリわかりません。 URLを入力するだけで変換してくれるサイトやツールはありませんでしょうか?

  • 正規表現について

    codeigniterを利用しており以下の事をしたいのですが実現できません。 以下URLでアクセスした場合にTop.phpというコントローラで第一引数と第二引数を受け取りたい。 http://example.com/ユニークID/ http://example.com/ユニークID/profile 現在はhttp://example.com/にアクセスするとTop.phpというコントローラのindexアクションが起動するようにしています。 今の所routes.phpに以下を記載した事で(http://example.com/ユニークID/)にアクセスした際にTop.phpが起動して、第一引数としてユニークIDを渡せています。 $route['^((?!hoge).)*$'] = "top/$0"; // さらに(http://example.com/ユニークID/profile)でアクセスした時に第二引数として 「profile」という文字を取得したいのですが正規表現がうまく作れません。 どうかご教授いただけないでしょうか。 よろしくお願いします。

    • 締切済み
    • PHP
  • ServerNamedで正規表現は使えますか?

    ServerName www.example.com Redirect permanent / http://example.com/ としてwww.example.comでのアクセスをリダイレクトして今はしのいでいます。 これを ServerName (.*)\.example.com とか正規表現のつもりでやって「どんなマルチドメイン」でアクセスしてきてもhttp://example.com/ に集約しようと思ったのですができません。 どんなマルチドメイン(hoge.example.comとかpoge.example.comとか)でもexample.comのドメインであればhttp://example.com/に集約させたいです。 お分かりになる方いらっしゃいますでしょうか? vine linux 3.2 apache 1.3

  • 正規表現

    @1, @2, @3,......と縦に続くテキストをテキストエディター上で一括削除したいのですが、そのときの正規表現を教えてください。

  • タグを正規表現で完全に削除

    こんばんわ~ときどきこちら様でお世話になってます タグ(Java ScriptやHTML中のCSS等きわめて複雑なものも含む)を完全に削除してウェブサイトの文字だけを抜き出したいんですけど自分にはハードルが高すぎたみたいです^^; http://www.din.or.jp/~ohzaki/perl.htm#HTML_Tag いろいろ調べているうちにこちらのサイト様を発見し、 $none_tag =~ s/$tag_regex//; とやってみましたがなぜかタグが残ってしまいます。 とあるサイトの【文字】だけを抜き出せれば良いのでタイトルに正規表現と記載しましたがその他の方法でも構いませんのでよろしくお願いしますm(_ _)m

    • ベストアンサー
    • Perl
  • 正規表現の書き方を教えてください

    正規表現の書き方を教えてください 膨大なサイトデータに含まれる、忍者ツールズのアクセス解析タグを 複数行置換ツールを使って、一気に削除したいです 正規表現を使えば、以下のアクセス解析タグを削除できると思うのですが どのように正規表現を使って記述すれば、いいのかわかりません ・アクセス解析タグ中の「15695600k」 ・リンク先(http://futoko.jpnz.jp、kateikyousi.rentalurl.net) ・アンカーテキスト(不登校 高校、家庭教師) は、タグによって変化する変数です ■忍者ツールズのアクセス解析タグのソース例 http://analyze.ninja-web.net/ ■使用する複数行置換ツール http://www.vector.co.jp/magazine/softnews/060905/n0609051.html ※このツールでできない場合は、用件を満たすツールを教えていただけますと幸いです よろしくお願いいたします

  • URL正規表現

    現在会員制サイトを作成しており http://sample.com/USER_ID/ のようなユーザーIDを含むURLを取得したいと思っています。 USER_ID 半角英数字(ハイフンアンダーバーを含む)の文字列の正規表現の記述をご教授いただけるとありがたいです。

    • ベストアンサー
    • PHP

専門家に質問してみよう