作者cvhill (NO more mistake)
看板Perl
标题[问题] perl 跨行比对的问题
时间Sun Jun 2 12:31:48 2013
大家好 我是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
1F:→ CCWck:可以的话 .*看能不能换成[a-zA-Z0-9]+之类的 06/02 13:19
2F:→ scwg:应该是 .* 太贪心的问题? 两个 .* 都改成 .*? 试试看 06/02 14:03
3F:→ cvhill:感谢两位! 第二位正解 原来*後还可以加? THS 06/02 15:34