正文是:
some text here x"/get/me/out/of/here.png"
我怎样才能得到双引号之间的所有内容?
这似乎不起作用:
if ($text =~ /".+?"/) {
print"found: $1\n";
}
谢谢。
正文是:
some text here x"/get/me/out/of/here.png"
我怎样才能得到双引号之间的所有内容?
这似乎不起作用:
if ($text =~ /".+?"/) {
print"found: $1\n";
}
谢谢。
你需要有一个$1
,所以用括号括起来.+?
:
$text = 'foo "bar baz" mu';
if ($text =~ /"(.+?)"/) {
print"found: $1\n";
}
印刷:
bar baz
或用于$&
抓取整个匹配项("bar baz"
: 包括双引号):
if ($text =~ /".+?"/) {
print"found: $&\n";
}
与往常一样,只要您认为 Regex 是最好的解决方案(有时可能是),快速访问 CPAN 可能会发现更好的东西。在这种情况下Text::Balanced
。有extract_delimited
orextract_quotelike
函数可以提取指定引号之间的文本。
仔细阅读说明,因为它有一些有用但可能是意想不到的行为。但是,它可能非常有用,尤其是在您必须进行重复提取的情况下。