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

如何从存在重复起始引号的字符串中提取完整引号内容?

问题原因

你写的正则r'"([^"]+)"'用了[^"]+这个否定字符类,它的作用是匹配任何不是引号实体的字符。所以当内容里出现第二个"时,匹配就会终止,导致正则把整个文本拆成了两段匹配,最终只返回最后一段的结果。

修复方案

改成贪婪模式的匹配逻辑,让正则从第一个"开始,一直匹配到最后一个",中间的所有内容(包括换行和其他引号实体)都包含进去:

import sys
import re

with open(sys.argv[1]) as txt:
    reader = txt.read()
    # 用.*贪婪匹配所有内容,re.DOTALL让.能匹配换行
    x = re.findall(r'"(.*)"', reader, re.DOTALL)

如果你的文本里存在多个独立的引号包裹块(比如"内容1""内容2"),这个正则会把它们当成一个整体提取。要是你需要分别提取每个块,那得换个思路——但根据你的示例场景,上面的代码刚好能提取你想要的完整内容。

内容的提问来源于stack exchange,提问作者greenc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:10:08