je n'arrive pas à contouner une difficulté à la noix...

J 'ai une liste : Liste_a de noms : chaine_a de maximum 50 caracteres que je compare une une autre liste : liste_b de noms : chaine_b
Pour savoir si le nom_a de la premiere liste appartient à un des nom_b de la liste_b
par exemple : dans la liste_a j'ai dupond et je cherche si j'ai c'ette chaine dans la liste_b
je veux retrouver tous les "dupond", "dupond_la_joie", "dupond_machin"...
(Désolée pour les duponds, s'il y en a qui lisent)
or dans la liste_a j'ai des chaines qui ont été tronquées pour faire maximum 50 caractères
Donc dans la liste _a j'ai des chaines style :
"Dupond ( de 'trifouillis' les oisillons en"
avec une parenthese isolée , eventuellement des cotes...
pour les comparer aux noms_b de la liste_b je fais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
def format_nom (nom_maudit):
    nom_a_formate = re.sub("\'", "\\\'", nom_a_formate)
    return nom_a _formate
qd je fais boucler le programme avec des :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if re.search(format(nom_a), format(nom_b)):
                print nom_a, nom_b
J'ai cette erreur : sre_constants.error: unbalanced parenthesis

dès qu'un nom avec une parenthese apparait.

Alors apres j'ai modifié en :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
def format_nom (nom_maudit):
    nom_a_formate = re.sub("\(", "\\\(", nom_a_maudit)
    nom_a_formate = re.sub("\)", "\\\)", nom_a_formate)
    nom_a_formate = re.sub("\'", "\\\'", nom_a_formate)
    return nom_a _formate
Pas mieux...
Je l'ai tourné ds tous les sens je n'arrive pas à le débloquer...

Quelqu'un aurait-il une idee pour me dépanner s'il vous plait?