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

正規表現でおたずねします。

以下の文字列があった場合、
$lines = '<a href="abcdefg">';
$lines =~ m /href="(.*?)"/ ;

でマッチしてabcdefgを抽出できるのですが、

$lines = '<a href="abcdefg" target="_blank">';
$lines =~ m /href="(.*?)"/ ;

の場合は、「abcdefg" target="_blank」まで抽出してしまいます。

一番目の「"」までで抽出を終わらせたい場合はどうしたらいいでしょうか?


●質問者: zachouR
●カテゴリ:インターネット ウェブ制作
✍キーワード:href マッチ 抽出 文字列 正規表現
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● wizemperor
●35ポイント
$lines = '<a href="abcdefg" target="_blank">';
$lines =~ m/href="(.*?)"/ ;

でも、「abcdefg」のみが抽出されると思いますが…。貪欲でないマッチを意味する「?」が抜けてたりしませんか?

あるいは、

$lines = '<a href="abcdefg" target="_blank">';
$lines =~ m/href="([^"]*)"/ ;

のように書き方を変えてみてはどうでしょうか?

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

◎質問者からの返答

すいません、自分の勘違いでした。

このままでいけました。


2 ● ootatmt
●35ポイント

perl 5.8.7 では、うまくいきましたよ。

perl のバージョンが低いのではないですか。

$lines = '<a href="abcdefg" target="_blank">';

$lines =~ /href="(.*?)"/;

print $1;

http://www.kent-web.com/perl/chap7.html

◎質問者からの返答

すいません、上記の通り勘違いでした。

パールのバージョンは、perl 5.8.7 です。

そのままいけました。

関連質問


●質問をもっと探す●



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