看板 Perl 關於我們 聯絡資訊
大家好 我是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
CCWck:可以的話 .*看能不能換成[a-zA-Z0-9]+之類的 06/02 13:19
scwg:應該是 .* 太貪心的問題? 兩個 .* 都改成 .*? 試試看 06/02 14:03
cvhill:感謝兩位! 第二位正解 原來*後還可以加? THS 06/02 15:34