如何正确链接Perl替换

问题描述 投票:0回答:1

我注意到当直接在终端中时,很容易将替换链接在一起:

perl -p -i -e 's/\xa/\xd/g; s/(<ACROSS PUZZLE>.+<GRID>\r\t)([A-Z\.]{15,})(\r\t.+)/\2/g' _temp.txt;

但是,当我重写某些脚本时,我无法成功将两个替换项组合在一起。当前,作为两个单独的语句,它可以工作,但是我不确定如何将这两行结合在一起:

$thisGrid =~ s/\xa/\xd/g;
$thisGrid =~ s/(<ACROSS PUZZLE>.+<GRID>\r\t)([A-Z\.]{15,})(\r\t.+)/\2/g; 

首先我尝试过:

$thisGrid =~ s/\xa/\xd/g =~ s/(<ACROSS PUZZLE>.+<GRID>\r\t)([A-Z\.]{15,})(\r\t.+)/\2/g; 

这似乎没有用。

[其他类似主题似乎没有回答我的问题。

regex perl substitution chaining
1个回答
0
投票

foreach循环可以用作主题处理程序。

for ($thisGrid) {
   s/\x0A/\x0D/g;
   s/(?:<ACROSS PUZZLE>.+<GRID>\r\t)([A-Z\.]{15,})(?:\r\t.+)/$1/g; 
}

否则,您需要使用/r返回修改后的字符串。

$thisGrid =
   $thisGrid
   =~ s/\x0A/\x0D/gr
   =~ s/(?:<ACROSS PUZZLE>.+<GRID>\r\t)([A-Z\.]{15,})(?:\r\t.+)/$1/gr;

您可以将它们链接

© www.soinside.com 2019 - 2024. All rights reserved.