Perl:如何匹配可变数量的模式

时间:2013-05-10 20:43:25

标签: regex perl

我想从文件中的列中获取一些信息,该列可能包含我感兴趣的可变数量的实例,请参阅下面的简单示例

chr8    +       120807654       121847348       Cdh13   unnamed (-46405)                                                                
chr2    +       167514414       167515918       Cebpb   unnamed (+3335), unnamed (+89835)

我想在最后一列的括号中使用数字,稍后再做一些计算。现在我无法使用正则表达式来获取所有这些数字,因为有些行只有1个“未命名(###)”,而有些行有超过1.如何处理这个?

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

while (<STDIN>) {
    @matches = m/\(([+-]\d+)\)/g;
    print join(",", @matches) . "\n";
}

/g将匹配所有字词,因此您的所有数字都将位于@matches数组中。