我使用tinyperl与下面的脚本:如何在Perl中忽略一些反斜杠但不是全部?
@lines=<STDIN>;
foreach (@lines) {
s/\\(.)/($1 eq '"' or $1 eq '\\') ? $1 : '\\' . $1/eg;
print;
}
我想每一个反斜杠只有后面的字符被考虑,并删除只有下列字符是一个双引号或一个反斜杠反斜杠。 (我知道这个目的可能对你不合适,但没关系)。
例如,我想将abc\ndef\\ghi\"\\\n
转换为abc\ndef\ghi"\\n
。但是这个脚本似乎将其转换为abcndef\ghi"\n
。
你能帮忙吗?
不会这也删除我的''backslash'or“'用反斜杠一起?还有,将perl的每一次他都会遇到一个反斜杠吃两个字符?(PS。降价是有时有点马车) – Benoit 2010-10-12 11:08:59
@Benoit您可能已经看到我的答案的第一个版本,在我编辑它之前已短暂发布,以便第二个匹配的字符不会被删除。请尝试修改后的解决方案,并为此感到抱歉! – mikej 2010-10-12 11:13:01
谢谢。相当好! – Benoit 2010-10-12 11:44:46