[問題] 正規表示式問題

看板Perl作者 (是黑是白)時間12年前 (2012/08/20 14:08), 編輯推噓1(105)
留言6則, 5人參與, 最新討論串1/1
請問一下~ 有一串字串如下 LOC_Os02g10710(tab)P$O2_03(tab)1063(tab)-(tab)1.000(tab)0.930(tab)XXXX 各項data被tab鍵隔開 想要取出前三項做處理(LOC_Os02g10710、P$O2_03、1063) 該怎麼用正規寫比較漂亮..? 我是寫成如下,但是寫法感覺笨笨的="= $name =~ /(.*)\t(.+)\t(.+)\t(.+)\t(.+)\t(.+)\t.*\s/; print $1; #印出第一項 print $2; #印出第二項 print $3; #印出第三項 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.1.134

08/20 14:22, , 1F
怎麼不用split?
08/20 14:22, 1F

08/20 15:16, , 2F
都用tab分好了,用split就好了
08/20 15:16, 2F

08/20 17:12, , 3F
print $_ for (@{[split"\t",$name]}[0..2]) ;
08/20 17:12, 3F

08/20 20:57, , 4F
($str1, $str2, $str3) = $name =~ /^正規表示示/;
08/20 20:57, 4F

08/24 16:33, , 5F
謝謝大家~
08/24 16:33, 5F

09/02 21:36, , 6F
split好用~ 感謝推薦
09/02 21:36, 6F
文章代碼(AID): #1GCTHsLD (Perl)
文章代碼(AID): #1GCTHsLD (Perl)