正则表达式 - 匹配最后一次出现的括号
Regex - Match last occurrence of parentheses
在下面的字符串中,我试图获取子字符串 (2005, Penguin Classics)
子字符串。
Marshall B. Rosenberg PhD - The Surprising Purpose of Anger_ Beyond
Anger Management_ Finding the Gift (Nonviolent Communication Guides)
(2005, Penguin Classics) AAA.pdf
我这样做是为了将子字符串更改为 (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"\(([^\)]+)\)[^\(]*$"
在下面的字符串中,我试图获取子字符串 (2005, Penguin Classics)
子字符串。
Marshall B. Rosenberg PhD - The Surprising Purpose of Anger_ Beyond Anger Management_ Finding the Gift (Nonviolent Communication Guides) (2005, Penguin Classics) AAA.pdf
我这样做是为了将子字符串更改为 (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"\(([^\)]+)\)[^\(]*$"