Python 正则表达式 : Matching bracket/parenthesis pairs

标签 python regex

我想捕获彼此相邻的方括号/圆括号对,并捕获其中的单词。在下面的文本中,我想捕捉 [oh](so)[bad](things)

[oh](so)funny
[all]the[bad](things)

如果我使用正则表达式 r'\[(.*?)\]\((.*?)\)' 它会捕获 [oh](so)[all]the[bad](things),这不是我想要的。

什么是解决这个问题的好正则表达式?

最佳答案

不要使用.*?

改为使用 [^\]]+[^\)]+

换句话说:

r'\[([^\]]+)\]\(([^\)]+)\)'

关于Python 正则表达式 : Matching bracket/parenthesis pairs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12132336/

相关文章:

java - 需要 6 位小数的纬度正则表达式

regex - nginx:站点重定向期间出现 502 Bad gateway 错误

python - 为什么 python 正则表达式中的 '\A' 在 [ ] 中不起作用?

regex - 从字符串中删除除空格以外的特殊字符

python - 使用 RDKit 计算 sdf 文件和结构 SMILE 之间的 Tanimoto 相似度?

python - 在 Windows 上安装 scikit-bio 时遇到问题

python - 从 Tcl 字典获取 Python 字典

python - 仅根据工作日(上午 8 点至晚上 10 点)和工作日在 Python 中查询数据

r - R 中管道操作中不包含单词的子向量(正则表达式)

python - 计算一年中的周数(处理一年中的第一周)