【发布时间】:2011-02-15 08:45:33
【问题描述】:
我需要用一个reg表达式匹配两种情况并进行替换
'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)?