PHPでの正規表現でURIを処理する時に


1. http://www.XXXX.XXX/XXX/sample.html
2. http://www.XXXX.XXX/XXX/
3. http://www.XXXX.XXX/XXX

のどのパターンでもhttp://www.XXXX.XXX/XXX/ もしくは http://www.XXXX.XXX/XXX として取り扱う正規表現を教えて頂けますでしょうか?

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2009/07/02 23:08:48
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント50pt
<?php
$url = preg_replace('/^(http:\/\/www\.XXXX\.XXX\/XXX)([\/\?].*)?/', '$1', $url);
?>
id:natsumi2000

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

2009/07/02 23:08:12
id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント100pt

正規表現による置換をお求めですよね。

条件が曖昧なので、こうしました。大文字は任意のURL文字とします。


  1. "http://www.XXX.YYY/sample.html"⇒"http://www.XXX.YYY"
  2. "http://www.XXX.YYY"⇒そのまま
  3. "http://www.XXX.YYY/"⇒そのまま
  4. "http://www.XXX.YYY/sample.shtm"など⇒そのまま

以上の要件であれば、下記のスクリプトで実現できます。

$destに変換元の URL を入れると、$dest に変換後の URL が代入されます。

$pat = "[\-_!~'\(\)a-zA-Z0-9@&=\+$\,%#]+";
$dest = preg_replace("/http:\/\/www.({$pat}).({$pat})(\/sample.html)?/", "http://www.$1.$2", $sour);

参考サイト

id:natsumi2000

解決しました!ありがとうございます。

2009/07/02 23:08:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません