以下の文字列があった場合、
$lines = '<a href="abcdefg">';
$lines =~ m /href="(.*?)"/ ;
でマッチしてabcdefgを抽出できるのですが、
$lines = '<a href="abcdefg" target="_blank">';
$lines =~ m /href="(.*?)"/ ;
の場合は、「abcdefg" target="_blank」まで抽出してしまいます。
一番目の「"」までで抽出を終わらせたい場合はどうしたらいいでしょうか?
$lines = '<a href="abcdefg" target="_blank">'; $lines =~ m/href="(.*?)"/ ;
でも、「abcdefg」のみが抽出されると思いますが…。貪欲でないマッチを意味する「?」が抜けてたりしませんか?
あるいは、
$lines = '<a href="abcdefg" target="_blank">'; $lines =~ m/href="([^"]*)"/ ;
のように書き方を変えてみてはどうでしょうか?
perl 5.8.7 では、うまくいきましたよ。
perl のバージョンが低いのではないですか。
$lines = '<a href="abcdefg" target="_blank">';
$lines =~ /href="(.*?)"/;
print $1;
すいません、上記の通り勘違いでした。
パールのバージョンは、perl 5.8.7 です。
そのままいけました。
すいません、自分の勘違いでした。
このままでいけました。