php5.5を使い$vの文字列の“tag%3Dxxxx-00%26”部分を切り取り、コメント行の文字列を出力たいのですがどのように書けばいいですか?

・$vの文字列はURLで2バイト文字は含まれません。
・$vの“xxxx-00”は“tag%3D”と“%26”で挟まれています。
・$vの“xxxx-00”は文字数や、“123456-99”のように文字自体が変更します。
・$vの“xxxx-00”の位置は変化します。最後に来た場合は“tag%3Dxxxx-00”と“%26”がなくなります。


$v = "/bb/B0QJU%3FS%3DAKBAIU8JLDZKMMGVSU3Q%26tag%3Dxxxx-00%26link%3Dxm2%26camp%3D2055%26"
// "/bb/B0QJU%3FS%3DAKBAIU8JLDZKMMGVSU3Q%26link%3Dxm2%26camp%3D2055%26"

よろしくお願いします。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/05/09 23:36:06
  • 終了:2015/05/11 11:45:19

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4523ベストアンサー獲得回数18792015/05/10 00:53:52

ポイント100pt

こんな感じでしょうか。

<?php
function echo_comment($v) {
    $pat = 'tag%3D\d+-\d{2}(%26|$)';
    if (preg_match('/' . $pat . '/', $v)) {
        $ss = preg_replace('/(.*)' . $pat . '(.*)/', '// "$1$3"', $v);
        echo $ss . "\n";
    }
}
?>

tag=xxxx-00 のパターンがあれば、コメント形式の文字列を echo して、無ければ何もしません。
xxxx-00 のパターンがよく分からなかったので、"任意桁数の数字" + "-" + "二桁の数字" という判定をしています。


ideone.com で試してみたのがこちらです。
http://ideone.com/2Gy7XB

id:wsapp

ご回答ありがとうございます。
返信が遅くなりましたが無事動作確認いたしました。
ありがとうございました。

2015/05/11 11:45:11

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません