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