我的字符串如下所示:
<File `../Path/To/My_File.gif'>
我想提取&#34; Path / To / My_File.gif&#34;。
以下是我的支票:
if ($row =~ /(?<=File `..\/).*(?=')/) {
print "Found it!\n";
print "$1\n";
}
我看到了#34;找到了它!&#34;打印到控制台,但也得到一个错误,说$ 1未初始化。我在这里缺少什么?
答案 0 :(得分:5)
$1
是第一次捕获(()
)捕获的值,但您的模式中没有捕获。修正:
/(?<=File `..\/)(.*)(?=')/
简化为:
m{File `../(.*)'}
更强大:
m{File `../([^']*)'}