python - 正则表达式 - 匹配最后出现的括号

标签 python regex pattern-matching regex-lookarounds regexp-replace

在下面的字符串中,我试图获取子字符串(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)。

下面是我当前的解决方案,但它与(非暴力沟通指南)(2005,企鹅经典) 匹配。关于如何解决这个问题有什么想法吗?

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/

以防万一它派上用场! :)

关于python - 正则表达式 - 匹配最后出现的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68750907/

相关文章:

正则表达式匹配水平空白

regex - 仅包含主题标签的推文的正则表达式

php - 在 codeigniter 中使用正则表达式验证表单

f# - 模式匹配有多聪明?

scala - 以 `type` 作为字段的 Scala 案例类的模式匹配

f# - 具有可区分联合的主动模式匹配

Python:获取具有特定索引的两个字符之间的字符串

python - 为什么 pip 在 Debian 上安装 texttract 失败?

python - 如何将一个函数延迟 X 个滴答数?

python - 记录我的 Django 代码