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

如何编写正则表达式将三重引号包裹的文本替换为空字符串

用正则移除三重引号包裹的多行文本

要移除所有被"""或'''包裹的文本(包括引号本身),可以使用支持多行匹配的正则表达式,以下是具体实现:

正则表达式模式

(?s)(["'])\1\1.*?\1\1\1

模式解释:

  • (?s):启用DOTALL模式,让.能够匹配换行符(部分工具可省略,改用[\s\S]替代.)
  • (["']):捕获组,匹配单个双引号或单引号
  • \1\1:重复捕获到的引号两次,组成三重引号起始标记
  • .*?:非贪婪匹配任意字符(包括换行),避免过度匹配多个引号块
  • \1\1\1:匹配与起始标记一致的三重引号结束标记

Python 示例代码

import re

raw_text = '''hello """
long text here,
e.g. a private SSH key
"""
this is a name for testing

'''
this is another multi-line 
stuff.
'''
'''

# 执行替换
cleaned_text = re.sub(r'(?s)(["\'])\1\1.*?\1\1\1', '', raw_text)
# 清理多余换行和空格,得到目标输出
print(cleaned_text.strip())

执行后输出:

hello
this is a name for testing

其他工具适配(如VS Code查找替换)

如果工具不支持(?s),可以改用[\s\S]匹配所有字符,正则模式为:

(["'])\1\1[\s\S]*?\1\1\1

开启正则匹配模式后,将匹配到的内容替换为空即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:18:20