Re: [問題] 常規表示式的比對問題?

看板Perl作者 (開心)時間18年前 (2007/04/08 16:42), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串3/4 (看更多)
承接本題目 若轉換後 由於 分成 212 122 221 而一個句子中經過$list轉換後有可能會出現是  212 -->表示有可能是212122 212 -->表示有可能是221212 122 -->表示有可能是122221 112 -->表示有可能是221112 221 -->表示有可能是221212 221 -->表示有可能是122221 若我想將這些片段取來及其相對應的組別 應該可以用perl來達到吧@@ 有人有什麼不錯的方式嗎^^ 因為若是用原本的程式跑的話 只是先比到第一個符合的就秀出分組 我有想過用while(/(212|122)/g) @@但若是降子的話則不就要改一大堆了@@ ※ 引述《fuu0115 (充實計劃啟動)》之銘言: : 給你參考看看! : 利用一些取代把那些ACT, PTN取代成一個符號, : 然後就可以利用一些規則把pattern過濾出來。 : #!/usr/bin/perl -w : use strict; : open FH, "<$ARGV[0]" or die "file open fail:$!"; : while (my $thisLine = <FH>) { : if ($thisLine eq "") { : next; : } : $thisLine =~ s{\s+$}{}; : my $list; : while ($thisLine =~ m{(ACT|PTN)}g){ : $list .= $1; -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.165.150

04/08 18:49, , 1F
若使用index與搭配212 122 221的陣列來找出其位置
04/08 18:49, 1F

04/08 18:50, , 2F
不知道是否可行呢@@?
04/08 18:50, 2F

04/08 20:39, , 3F
用3個if判斷就可以達到你的需求了
04/08 20:39, 3F
文章代碼(AID): #166Ahb5S (Perl)
文章代碼(AID): #166Ahb5S (Perl)