perl
2014-09-19 49 views 1 likes 
1

我想從字符串中捕獲一個子字符串,因爲我使用的是regx,但它不工作。我得到的錯誤是Can't find Unicode property definition "o"找不到Unicode屬性定義「o」 - 正則表達式在perl中不工作

我正在使用Windows機器運行下面的代碼。

下面是代碼:

use strict; 
use warnings; 
my $path = 'C:\APTscripts\APStress\Logs\APStress_September-18---20.44.25\APTLogs\PostBootLogs\09-18-2014_15-18-32\UILogs_09-18-2014_15-50-43.txt'; 
my ($captured) = $path =~ /(.+?) \PostBootLogs/gx; 
print "$captured\n"; 
+2

'/ g'是浪費無用的。 – ikegami 2014-09-19 12:06:59

回答

3

你只需要逃避的模式反斜線:

/(.+?) \\PostBootLogs/gx 

你無意中觸發與使用\P使用Unicode character properties

0

正如已經演示的那樣,您需要在正則表達式中跳過您的文字反斜槓。

​​

但是,您也可以完成這個相同的任務沒有一個正則表達式但如果你使用Path::Class或類似的文件和目錄管理模塊。

use Path::Class; 

my $captured = file($path)->dir->parent->parent; 
相關問題