看板 Perl 關於我們 聯絡資訊
用一個 Loop 把每一行個別抓出來處理 只要有抓到 AAA 就再檢查該行有沒有 B 和 C 沒有的話就直接在這一次 loop 抓出下一行出來處理 這樣應該就行囉 ※ 引述《cvhill (NO more mistake)》之銘言: : 大家好 我是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: 36.229.85.199