Lawrence D'Oliveiro <[email protected]> writes:
> 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)
)
How about just:
repl = {
"a" : "b",
"c" : "d",
"e" : "f",
"g" : "h",
}
"".join(repl.get(s, s) for s in re.split(r"\b", text))
- Alan
--
https://mail.python.org/mailman/listinfo/python-list