Sujet : Re: Python Dialogs (Posting On Python-List Prohibited)
De : ldo (at) *nospam* nz.invalid (Lawrence D'Oliveiro)
Groupes : comp.lang.pythonDate : 03. May 2024, 04:02:57
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v11gkh$9q5g$2@dont-email.me>
References : 1
User-Agent : Pan/0.155 (Kherson; fc5a80b8)
Assume you have an expression "s.replace('a','b').replace('c','d').
replace('e','f').replace('g','h')". Its value is a string which
is the value of s, but with "a" replaced by "b", "c" replaced by
"d", "e" replaced by "f" and "g" replaced by "h". How to modify
this expression, so that "a", "c", "e", and "g", respectively,
are replaced only if they are words (but not parts of words)?
import re
replacements = (("a", "b"), ("c", "d"), ("e", "f"), ("g", "h"))
text = "this be a test g eg"
"".join \
(
repl.get(s, s)
for repl in (dict(replacements),)
for s in
re.split("\b(" + "|".join(re.escape(s[0]) for s in replacements) + ")\b", text)
)
result:
'this be b test h eg'