import re sep = r"[.\-/]" def convertir_point_median(texte): versions = [texte] # Règles à 3 composantes regles3 = [fr"(\w+){sep}(\w+[es]*){sep}([es]+)", fr"([td]eur){sep}([td]rice){sep}([s]+)", fr"(eur){sep}(ice|euse){sep}([s]+)", fr"(er){sep}(ère){sep}([s]+)", fr"([fs]){sep}([fs]{2}e){sep}([s]+)", fr"([eo][lnt]){sep}([eo]?[lnt]+e){sep}([s]+)"] for r in regles3: versions.append(re.sub(r, r"\1·\2·\3", versions[-1])) # Règles à 2 composantes regles2 = [fr"(\w+){sep}([es]+)", fr"([td]eur[s]?){sep}([td]?rice[s]?)", fr"(eur[s]?){sep}(euse[s]?|ice[s]?)", fr"(eux|el){sep}(elle[s]?|euse[s]?|le[s]?)", fr"(aux|al){sep}(ale[s]?)", fr"(er[s]?){sep}(ère[s]?)", fr"([s]){sep}([s]{2}e[s]?)", fr"([eo][flnt][s]?){sep}([eo]?[flnt]+e[s]?)", fr"(\w+e){sep}(\w+a)", fr"(\w+t){sep}(te)"] for r in regles2: versions.append(re.sub(r, r"\1·\2", versions[-1])) # Règles avec des parenthèses reglesp = [r"(\w+)[\(]([es]+)[\)]", r"([td]eur[s]?)[\(]([td]?rice[s]?)[\)]", r"(eur[s]?)[\(](euse[s]?|ice[s]?)[\)]", r"(eux|el)[\(](elle[s]?|euse[s]?|le[s]?)[\)]", r"(aux|al)[\(](ale[s]?)[\)]", r"(er[s]?)[\(](ère[s]?)[\)]", r"([s])[\(]([s]{2}e[s]?)[\)]", r"([eo][flnt][s]?)[\(]([eo]?[flnt]+e[s]?)[\)]", r"(\w+e)[\(](\w+a)[\)]", r"(\w+t)[\(](te)[\)]"] for r in reglesp: versions.append(re.sub(r, r"\1·\2", versions[-1])) return versions[-1]