python - 正则表达式 - 匹配最后出现的括号
问题描述
在下面的字符串中,我试图获取子字符串子(2005, Penguin Classics)
字符串。
Marshall B. Rosenberg 博士 - 愤怒的令人惊讶的目的_超越愤怒管理_寻找礼物(非暴力沟通指南)(2005 年,企鹅经典)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)
解决方案
也许这会有所帮助:
r"\(([^\)]+)\)[^\(]*$"
推荐阅读
- batch-file - 如何正确设置地址中的 %UserProfile%
- sql-server - 为什么 SQL Server 需要打开 ansi_nulls 才能创建索引?
- python - 在 tkinter 中操作树视图的数据时遇到问题
- vim - 将 VIM 编辑器中的文本从一个会话拖到另一个会话
- r - tq_transmute 的 tibbletime 产生奇怪的错误,列显然存在但说它不存在
- typescript - 无法将函数分配给具有泛型参数的类型
- excel - Excel VBA秒表在午夜中断
- amazon-web-services - 用户@
: 权限被拒绝 (publickey,gssapi-keyex,gssapi-with-mic) - java - 可访问和可修改的数据?
- php - 输入表单中的“上传”功能,它在本地网络上创建一个文件夹并在其中存储 pdf,以便基于 PHP/Mysql 的本地网络上的 CRUD 应用程序