Python regex: how to replace string except if another string exist on the same line? -
i fixing spell of articles withreplace.py
by replacing "choeur" "chœur".
there file links in mediawiki syntax :
[[fichier:menditte (pyr-atl, fr) choeur de l'église.jpg|thumb|chœur de l'église]]
editing kind of thing broke link. can't use []
because there's link description :
[[fichier:jeronimosroyaltombs.jpg|thumb|right|tombeaux de [[jean iii de portugal]] (à gauche) et de [[catherine de castille]] (à droite) dans la choeur de l'église]]
in case, spell should fixed.
need not edit if there is.jpg
on same line , after "choeur".
my problem couldn't find way handle boolean expressions inside python regex
you can use negative lookahead (?!...)
(not followed by):
pattern:
(?i)\b(ch)oe(urs?\b)(?!.*\.jpg\b)
replacement:
$1œ$2
about word boundaries:
word boundaries used delimite letters \bchoeurs?\b
or \.jpg\b
, , job in cases. however, keep in mind word boundaries not work string: __choeur__
. if needed, word boundaries can replaced lookarounds, example:
(?:(?<=_)|\b)choeurs?(?=_|\b)
Comments
Post a Comment