objectif
Remplacer dynamiquement en utilisant une fonction de rappel et des groupes.
code minimal
import re
s = "name=ada, age=30"
pat = re.compile(r"name=(?P<name>\w+)")
out = pat.sub(lambda m: f"user={m.group('name').upper()}", s)
print("user=ADA" in out) # attendu: True
utilisation
import re
s = "a1 b2"
out = re.sub(r"(\d)", lambda m: str(int(m.group(1))+1), s)
print(out == "a2 b3")
variante(s) utile(s)
import re
print(re.subn(r"x", "y", "xxy")[1] == 2) # nombre de remplacements
notes
- subn renvoie (texte, nombre_remplacements).
- Précompilez vos patterns pour des appels répétés.