我已经在Stack Overflow中搜索了类似的问题,但是找不到。我想要的是一个正则表达式(我正在使用Perl)来查找可能重复字符的最后一次出现。
例如a;b;c;;;d,;ee
,我想调用split
函数在此字符串中;
的最后一个位置进行拆分,这样拆分后的结果将是{{1} }。
谢谢
This question类似,但不是我想要的。对于我的示例,我想要一个包含5个项目[a b c;; d, ee]
的列表。另一个问题将给出两个项目[a b c;; d, ee]
的列表。
答案 0 :(得分:3)
split /;(?!;)/
(仅在;
上分割,后跟;
)
答案 1 :(得分:0)
另一种方法,可以绕过序列的最后一个分号以外的所有内容
use strict;
use warnings 'all';
my @vals = split /;*\K;/, 'a;b;c;;;d,;ee';
use Data::Dumper;
print Dumper \@vals;
$VAR1 = [
'a',
'b',
'c;;',
'd,',
'ee'
];
答案 2 :(得分:-2)
使用捕获组。
my ( $first, $last ) = $string =~ /(.*);([^;]*)$/;