Je dois correspondre à deux cas par une expression régulière et effectuer un remplacement
'long.file.name.jpg' -> 'long.file.name_suff.jpg'
'long.file.name_a.jpg' -> 'long.file.name_suff.jpg'
J'essaie de faire ce qui suit
re.sub('(\_a)?\.[^\.]*$' , '_suff.',"long.file.name.jpg")
Mais cela coupe l'extension '.jpg' et j'obtiens
long.file.name_suff. au lieu de long.file.name_suff.jpg Je comprends que c'est à cause de la partie [^.]*$ mais je ne peux pas l'exclure, car je dois trouver la dernière occurrence de '_a' à remplacer ou le dernier '.'
Y a-t-il un moyen de ne remplacer que la partie de la correspondance ?