Python regex:如何替换字符串,除非另一个字符串存在于同一行



我正在用"chœur"替换"choeur"来修复一些文章与replace.py的符咒。
在mediawiki语法中也有文件链接:

[[Fichier:Menditte (Pyr-Atl, Fr) choeur de l'église.JpG|thumb|Chœur de l'église]]

编辑这种东西会破坏链接。我不能使用[],因为还有链接描述:

[[Fichier:JeronimosRoyalTombs.Jpg|thumb|right|Tombeaux de [[Jean III de Portugal]] (à gauche) et de [[Catherine de Castille]] (à droite) dans la choeur de l'église]]

在这种情况下,这个咒语应该被修复。
所以我不需要做编辑,如果有.jpg在同一行,在"choeur"之后。

我的问题是我找不到在python regex中处理布尔表达式的方法

您可以使用负向前看(?!...) (后面不跟):

模式:

(?i)b(ch)oe(urs?b)(?!.*.jpgb)

替换:

$1œ$2

关于字边界:

字边界用于分隔bchoeurs?b.jpgb的字母,并且在大多数情况下可以完成这项工作。但是,请记住,单词边界不适用于这个字符串:__choeur__。如果需要,可以用遍历替换单词边界,例如:

(?:(?<=_)|b)choeurs?(?=_|b)

相关内容

  • 没有找到相关文章

最新更新