Bonjour à tous,

Je cherche présentement à "nettoyer" deux listes de noms dont le formatage est différent, afin de pouvoir créer une liste unique de correspondance.
Concrètement, voici des exemples de formatage:

Table 1 Table 2 résultat attendu
Bob_Leponge Leponge, Bob leponge_bob
Marie-Pier_Josee Jose, MariePier josee_marie-pier
Justin_De-L'Arbre De L'Arbre, Justin de-l'arbre, Justin

Pour info, j'ai intégré le "résultat attendu" de manière purement arbitraire. L'idéal est avant tout de pouvoir séparer les noms et prénoms (facile), puis de reformater chacun d'eux.

À moins qu'une solution plus efficace existe, j'ai pensé à réaliser ce reformatage par RegEx (via la bibliothèque RE). Cependant, je débute à peine sur les RegEx et j'ai encore un peu du mal à saisir les paterns à employer.
Aussi, bien que le fait de n'utiliser qu'un seul patern serait idéal, j'ai la possibilité de traiter les deux tables indifféremment, donc possibilité d'employer plusieurs paterns.

Pour le moment, voici ce que j'ai essayé (trouvé durant la rédaction de ce post):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
import re 
pattern = re.compile(r"([A-Z][^A-Z\-\s]*)")
Qui fonctionne bien, sauf pour le dernier à cause de l'apostrophe. En effet, ceci me sépare le "L'" de "Arbre" ce qui est problématique lors du l'appel à '-'.join(pattern.findall(input)).
Sauriez-vous m'indiquer dans quelle mesure je peux modifier mon regex afin que ce dernier ne sépare pas majuscules séparées d'un apostrophe ( "AbcD"["Abc", "D"], mais "L'AbcD"["L'Abc", "D"]) ?

Je vous remercie par avance de votre expertise et savoir faire, qui me seront fort utile dans l'automatisation des tâches que j'entreprends.
Bonne journée !