我需要用一个正则表达式匹配两种情况并进行替换。
'long.file.name.jpg' -> 'long.file.name_suff.jpg'
'long.file.name_a.jpg' -> 'long.file.name_suff.jpg'
我正在尝试实现以下内容:
re.sub('(\_a)?\.[^\.]*$' , '_suff.',"long.file.name.jpg")
但是这段代码截断了扩展名“ .jpg”,我获取的是 long.file.name_suff. 而不是 long.file.name_suff.jpg。
我知道这是因为 [^.]*$ 部分,但我不能排除它,因为我必须找到最后一个“_a”出现的位置来替换或者最后一个“.”
有没有办法只替换匹配的一部分?
(\\_a)
? - Amarghosh