2015-10-13 62 views
1

我讀Perl中的文件和拆分功能我想拆基於兩個分隔符的值。Perl中使用兩個分隔符

col1  col2 
uc011nbb.2 NM_001039567 
uc004fuo.4 NM_001006120 
uc011nbc.2 NM_001006121 
uc010nwz.3 NM_001006121 

第1欄和COL2由製表符分隔,所以我通常使用這樣的:

my @cols = split(/\t/); 

不過,我想拆COL1也 ''。我如何修改我的分割功能?

+3

'我@cols =分裂(/ [\噸] /); ' –

+3

假設你的「COL2」不是以往任何時候都含有'當然是.'! – Sobrique

回答

6

可以使用character class編碼兩種可能性:

split /[.\t]/; 

正如上面@Sobrique指出,應確保.永遠不會在任何列名的使用它作爲分隔符之前。

實施例:

say foreach split /[.\t]/, "this is some.text that has\ttwo delimiters"; 
this is some 
text that has 
two delimiters 
+4

如果第二列中可能包含的點,用'分裂/[\t.]/,$ _,3'永不分開超過3倍的值。 – choroba