有一个示例行:
'小时|日|年'
我需要获得一年的一部分,但我无法做出决定:
$string = 'Hour |Day |Year';
$string =~ s/^.*?|([^|]+)$/$1/;
答案 0 :(得分:3)
将字符串拆分为元素:
my @elements = split( /\|/, $string );
然后获取最后一个元素:
print $elements[-1];
答案 1 :(得分:1)
你几乎得到它,你只需要“逃避”第一个|
:
$string = 'Hour |Day |Year';
$string =~ s/^.*?\|([^|]+)$/$1/;
因为它是一个特殊字符,在Perl正则表达式中表示or
。
答案 2 :(得分:0)
我认为你需要这个......
$string = 'Hour |Day |Year';
$string =~ s/^(?:.*?)\|([^|]+)$/$1/m;
答案 3 :(得分:0)
你也可以尝试这个:
([^|]+$)
它将从最后获取Year
部分。无需匹配整个字符串。
您的代码应如下所示:
$string = 'Hour |Day |Year';
$string =~ s/([^|]+$)/$1/;