2013-05-10 29 views
-2

我想grep從文件中的列的一些信息,該列可能包含我感興趣的可變數量的實例,請參閱下面的一個簡單示例Perl:如何匹配可變數量的模式

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

我想使用最後一列括號中的數字並稍後進行一些計算。現在我無法使用正則表達式來獲取所有這些數字,因爲某些行只有1個「未命名(###)」,而有些行超過1個。如何處理?

謝謝!

+0

我想我可以讀取最後一列,並根據逗號分割它,然後處理每個模式 – olala 2013-05-11 21:24:50

回答

1

試試這個:

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

/g將匹配所有的話讓所有的號碼將在@matches陣列。

+0

我明白了,謝謝! – olala 2013-05-11 21:24:01