[問題] perl 跨行比對的問題

看板Perl作者 (NO more mistake)時間12年前 (2013/06/02 12:31), 編輯推噓0(003)
留言3則, 3人參與, 最新討論串1/3 (看更多)
大家好 我是perl新手 想請教一下perl的跨行取代要如何重複執行 我寫出來的都會直接取代第一個和最後一個case 舉例來說 我有一個檔案形式是 1.AAAxxxxB=XXXxxx xxxC=YYY 2.AAAxx xB=ZZZxxxxxxxxxC=HHH (x是不要的東西且x有可能跨行) 我想要抓出 1.AAA B=XXX C=YYY 2.AAA B=ZZZ C=HHH 所以我perl寫的是 $_=~ s/AAA.*B=(\S+).*C=(\S+)/AAA B=$1 C=$2/gs; print $_ . "\n"; 結果他只能出現一行 1.AAA B=ZZZ C=HHH ^^^^^ ^^^^^^^^^^ 第一行的頭 第二行的尾 有高手可以指導一下該怎麼寫嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.5.175

06/02 13:19, , 1F
可以的話 .*看能不能換成[a-zA-Z0-9]+之類的
06/02 13:19, 1F

06/02 14:03, , 2F
應該是 .* 太貪心的問題? 兩個 .* 都改成 .*? 試試看
06/02 14:03, 2F

06/02 15:34, , 3F
感謝兩位! 第二位正解 原來*後還可以加? THS
06/02 15:34, 3F
文章代碼(AID): #1HgigsL7 (Perl)
文章代碼(AID): #1HgigsL7 (Perl)