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

技术求助:如何将文档中首尾@分别替换为{{和}}?

嘿,我完全懂你遇到的困扰——要把文档里每段的第一个@换成{{、第二个@换成}}对吧?其实用正则表达式或者简单的脚本就能搞定,我给你几个不同场景下的可行方案:

文本编辑器方案(VS Code/Sublime/Notepad++通用)

大多数现代文本编辑器都支持正则替换,这是最快的处理方式:

  1. 打开替换面板(VS Code按Ctrl+H,Sublime按Ctrl+Shift+H)
  2. 勾选「正则表达式」选项(一般是个.*的图标)
  3. 在「查找」框输入:^([^@]*)(@)([^@]*)(@)
  4. 在「替换」框输入:$1{{$3}}
  5. 点击「替换全部」

这个正则的逻辑是:匹配每段开头到第一个@的内容、第一个@、两个@之间的内容、第二个@,然后把第一个@换成{{,第二个@换成}},其余内容原封不动保留。如果某段里@的数量少于2,会自动跳过不修改。

命令行方案(Linux/macOS用sed)

如果你习惯用命令行批量处理文件,可以用sed命令:

sed -E 's/^([^@]*)(@)([^@]*)(@)/\1{{\3}}/' your_input_file.txt > your_output_file.txt

-E参数启用扩展正则语法,确保匹配逻辑和编辑器里一致。执行后会生成一个修改好的新文件,原文件不会被改动。

Python脚本方案(适合复杂场景或批量处理)

如果需要更灵活的控制(比如处理编码特殊的文件、批量修改多个文件),可以写个简单的Python脚本:

# 替换每段的前两个@为{{和}}
with open("input.txt", "r", encoding="utf-8") as input_file:
    lines = input_file.readlines()

modified_content = []
for line in lines:
    # 把行按@分割成最多3部分:第一个@前、中间内容、第二个@后
    split_parts = line.split("@", 2)
    if len(split_parts) >= 3:
        # 拼接成替换后的格式
        new_line = f"{{{{{split_parts[1]}}}}}{split_parts[2]}"
        modified_content.append(new_line)
    else:
        # 不足两个@的行,直接保留原内容
        modified_content.append(line)

# 写入新文件
with open("output.txt", "w", encoding="utf-8") as output_file:
    output_file.writelines(modified_content)

把上面的代码保存为replace_at.py,把要处理的文件命名为input.txt,运行脚本后就会生成修改好的output.txt。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:40:14