人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlに関する質問です。正規表現になると思います。

以下のあるテキストデータがあって、

//wrs.search.yahoo.co.jp/S=2114736003/K=%E3%81%8D%E3%82%8A%E3%82%93%E5%BA%A7/v=2/SID=w/l=WS1/R=2/IPC=us/SHE=0/H=0//SIG=11p8an274/EXP=1171686616/*-http%3A//d.hatena.ne.jp/camelopardalis/index.html

となっていた場合、後ろの部分の、「d.hatena.ne.jp/camelopardalis/index.html」がほしい場合は
どのようにしたらいいでしょうか?

自分はもう、後ろから一字づつしらみつぶしに調べていく方法しかわかりません。

どなたか、よい案がありましたら、教えてください。
よろしくお願いします。

●質問者: zachouR
●カテゴリ:インターネット ウェブ制作
✍キーワード:BA co.jp E3 Hatena HTML
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●27ポイント ベストアンサー

それ一行?

// をセパレーターと考えていいんなら、

$text =~ m|//(.*?)$|;
$result = $1;

でいいと思うけど。

正規表現メモ

◎質問者からの返答

はい、これは一行です。

ありがとうございます。


2 ●
●27ポイント

以下のようなやり方ではいかがでしょうか。

(最後のスラッシュ2個の後ろの値を取得します。)

#! /usr/bin/perl

use strict;
use warnings;

my $str = "//wrs.search.yahoo.co.jp/S=2114736003/K=%E3%81%8D%E3%82%8A%E3%82%93%E5%BA%A7/v=2/SID//=w/l=WS1/R=2/IPC=us/SHE=0/H=0//SIG=11p8an274/EXP=1171686616/*-http%3A//d.hatena.ne.jp/camelopardalis/index.html";

$str =~ m{^.*//(.*?)$};
print $1;

詳説 正規表現 第2版

詳説 正規表現 第2版

  • 作者: Jeffrey E.F. Friedl
  • 出版社/メーカー: オライリー・ジャパン
  • メディア: 単行本

正規表現に関しては、この本が参考になります。

◎質問者からの返答

ありがとうございます。

うまくいきました。

ご紹介された本は購入しています。分厚くて頭がくらくらしそうです(;;)


3 ● b-wind
●26ポイント

別解

$result = (split( '//' , $text ))[-1];

http://q.hatena.ne.jp/answer

◎質問者からの返答

いつも、ありがとうございます。

参考にさせていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ