我不确定这个问题是否可以用正则表达式(在 Perl5 语法中)解决,但这里有一个不言自明的例子:
smth Y1 test X foo X Y2 bar X Y1 X X Y2
s/?/Z/g
smth Y1 test Z foo Z Y2 bar X Y1 Z Z Y2
考虑 Y1 总是有一个匹配的 Y2,并且没有重叠。
最佳答案
给你:
$str = 'smth Y1 test X foo X Y2 bar X Y1 X X Y2';
$str =~ s/X(?=((?!Y1).)*Y2)/Z/g;
print $str; #smth Y1 test Z foo Z Y2 bar X Y1 Z Z Y2
关于python - 如何替换 Y 之间出现的所有 X?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6959955/