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

作者: clanguage (C語言)   2013-06-02 13:50:40
用一個 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
: ^^^^^ ^^^^^^^^^^
: 第一行的頭 第二行的尾
: 有高手可以指導一下該怎麼寫嗎? 謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com