我正在尝试从字符串中捕获一个子字符串,因为我正在使用regx,但它无法正常工作。我得到的错误是Can't find Unicode property definition "o"
我正在使用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";
答案 0 :(得分:3)
答案 1 :(得分:0)
如前所述,您需要在正则表达式中转义文字反斜杠。
my ($captured) = $path =~ /(.+?) \\PostBootLogs/x;
但是,如果您使用Path::Class
或类似的文件和目录管理模块,也可以在没有正则表达式的情况下完成相同的任务。
use Path::Class;
my $captured = file($path)->dir->parent->parent;