Regex -匹配括号的最后一次出现



在下面的字符串中,我试图获得子字符串(2005, Penguin Classics)子字符串。

Marshall B. Rosenberg博士-愤怒的惊人目的_超越愤怒管理_寻找礼物(非暴力沟通指南)(2005,企鹅经典)AAA.pdf

我这样做是为了将子字符串更改为just(2005)。

下面是我当前的解决方案,但它匹配(Nonviolent Communication Guides)(2005, Penguin Classics)。对如何解决这个问题有什么想法吗?

import re
parentheses_pattern = "(([^)]+))*$"
reg = re.search(parentheses_pattern, filename)
year = reg.group()
year = year[:5]+")"
filename = re.sub(parentheses_pattern,year,filename)

这可能行得通吗?

(d+, .*)

一个测试正则表达式的好地方是:https://rubular.com/

以备不时之需!:)

也许这会有所帮助:

r"(([^)]+))[^(]*$"

相关内容

最新更新