Perl:在字符串中查找第N个匹配项并将子字符串返回到此匹配项

时间:2015-02-05 09:58:59

标签: perl indexing substr

我有以下字符串,其中分隔符为逗号“”:

$ str =“ abc,123,rty,567,89 ,, 90,gg

我想首先在上面的字符串中找到 N 出现的“,”,假设我想找到 5 次出现。 在$ str中,这是元素 89 之后的逗号。

然后我想得到字符串$ str的那部分从0开始并最终结束到 5 逗号,这将是:

“的 ABC,123,RTY,567,89

请告知我如何使用Perl执行此操作。

谢谢

1 个答案:

答案 0 :(得分:1)

使用拆分和列表切片的一种简单方法:

#!/usr/bin/perl

use strict; use warnings; use 5.010; 

my $str = "abc,123,rty,567,89,,90,gg";
say $str;

my $to_fifth = join ',', ( split(',', $str) )[0 .. 4] ;
say $to_fifth;

<强>输出

abc,123,rty,567,89,,90,gg
abc,123,rty,567,89