re.sub()-正则表达式,用于替换字符串中子字符串的最后一次出现


问题内容

我正在尝试在Python中使用re.sub替换字符串中子字符串的最后一次出现,但被正则表达式模式卡住了。有人可以帮助我获得正确的模式吗?

String = "cr US TRUMP DE NIRO 20161008cr_x080b.wmv"

要么

String = "crcrUS TRUMP DE NIRO 20161008cr.xml"

我想替换最后出现的“ cr”以及扩展名之前的所有内容。

所需的输出字符串是-

"cr US TRUMP DE NIRO 20161008.wmv"
"crcrUS TRUMP DE NIRO 20161008.xml"

我正在re.sub替换它。

re.sub('pattern', '', String)

请指教。


问题答案:

使用贪婪的量词和捕获组:

re.sub(r'(.*)cr[^.]*', '\\1', input)