字符串:abc aa efg a aaa hijk aazzz
使用正则表达式,我只想将2个相邻的“a”替换为单个“a”。
我的代码是这样的,但它也替代了3“a”。
s/(aa)/a/g;
答案 0 :(得分:3)
Lookarounds在这里派上用场,我们可以尝试匹配aa
,条件是aa
之前和之后的a
不是(?<!a)aa(?!a)
。使用这种模式:
my $old = 'abc aa efg a aaa hijk aazzz';
my $new = $old =~ s/(?<!a)aa(?!a)/a/rg;
print $new;
abc a efg a aaa hijk azzz
这是一个有效的代码片段(下面的演示):
{{1}}