【发布时间】:2013-10-10 09:18:24
【问题描述】:
我确定我错过了一些东西,需要另一双眼睛。 我已经启用警告并使用严格 我正在尝试提取变量中的双引号之间 例如:
my $line = ' TITLE "Better off Faded"';
(my $title = $line) =~ s/"(.*?)"/$1/g;
print "title: [$title]\n";
print "MATCHDATA: <$`|$&|$'>\n";
print "capture1: $1\n";
这会产生输出:
title: [ TITLE Better off Faded]
MATCHDATA: < TITLE |"Better off Faded"|>
capture1: [Better off Faded]
看起来捕获正在工作,但替换命令只是从 $title 变量中删除双引号字符,而不是用 $1 捕获填充它。
由于捕获工作正常,我已经知道我可以使用:
my $data = ($line =~ /"(.*?)"/)[0];
print "alt: [$date]\n";
要从双引号中提取数据,但为什么替换不起作用?
【问题讨论】:
标签: regex perl substitution