python - 如何替换 Y 之间出现的所有 X?

标签 python regex perl sed

我不确定这个问题是否可以用正则表达式(在 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/

相关文章:

python - pandas DataFrame 中按位不为 True(包括 NaN)

javascript - Flask webservice 的 HighCharts 查询参数问题

perl - 如何手动安装 Redis perl 库,即离线。以及从哪里可以获取所有要安装的依赖项

python - Azure Blob 存储 : How can I read a file without having to download the whole thing first?

JavaScript 数字正则表达式

python - 在 Python 中使用带有 LOCALE 和 UNICODE 标志的 Regex 测试空格

regex - R:可变宽度lookbehind的解决方法

arrays - (Perl) 尝试使用简单数组编写 foreach 语句。对格式感到困惑

Perl 5 : assignment of an anonymous arrayref, 数组仍然为空 = 复制构造?

python - MS Access 关系问题