Как заменить только часть матча на python re.sub

Мне нужно сопоставить два случая одним выражением reg и сделать замену

'long.file.name.jpg' -> 'long.file.name_Suff.jpg»

«long.file.name_a.jpg '->' long.file.name_Suff.jpg»

Я пытаюсь сделать следующее

re.sub('(\_a)?\.[^\.]*

Но это вырезать расширение «.jpg», и я получаю

long.file.name_suff. вместо long.file.name_suff.jpg Я понимаю, что это из-за [^.] * $ part, но я не могу исключить это, потому что я должен найти последнее вхождение '_a' для замены или последнего '.'

Есть ли способ заменить только часть матча?

, '_suff.',"long.file.name.jpg")

Но это вырезать расширение «.jpg», и я получаю

long.file.name_suff. вместо long.file.name_suff.jpg Я понимаю, что это из-за [^.] * $ part, но я не могу исключить это, потому что я должен найти последнее вхождение '_a' для замены или последнего '.'

Есть ли способ заменить только часть матча?

Ответы на вопрос(4)

Ваш ответ на вопрос