You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何使用re库从嵌套括号中提取外层括号内带双引号的字符串

问题原因

你原来使用的正则\((.*?)\)采用非贪婪匹配,遇到第一个右括号就会停止匹配,因此会被字符串内部的括号截断,无法匹配到最外层的右括号。

解决方案

根据你的需求,可以直接限定匹配「外层括号内以双引号包裹的完整内容」,调整正则即可实现目标:

1. 返回带外层双引号的结果

import re

string = 'this is a test ("string with (some) paranthesis") how great'
extract = re.findall(r'\((".*?")\)', string)
print(extract)

输出:

['"string with (some) paranthesis"']

2. 返回不带外层双引号的结果

只需调整正则的捕获组位置即可:

import re

string = 'this is a test ("string with (some) paranthesis") how great'
extract = re.findall(r'\("(.*?)"\)', string)
print(extract)

输出:

['string with (some) paranthesis']

原理解释

调整后的正则明确匹配( + " + 任意内容 + " + )的结构,会跳过双引号内部的所有字符(包括括号),直到匹配到闭合双引号之后的右括号为止,不会被内部括号提前截断。


内容的提问来源于stack exchange,提问作者Artur Müller Romanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:45:04