2015-06-23 52 views
0

我的字符串如下所示:

<File `../Path/To/My_File.gif'> 

我想提取只是 「路徑/要/ My_File.gif」。

這裏是檢查我有:

if ($row =~ /(?<=File `..\/).*(?=')/) { 
     print "Found it!\n"; 
     print "$1\n"; 
} 

我看到 「找到了!」打印到控制檯,但也得到一個錯誤,說$ 1未初始化。我在這裏錯過了什麼?

回答

5

$1是第一次捕獲捕獲的值(()),但在模式中沒有捕獲。修復:

/(?<=File `..\/)(.*)(?=')/ 

簡體:

m{File `../(.*)'} 

更強大:

m{File `../([^']*)'}