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

如何用正则表达式为特定格式字符串添加前后字符并保留原内容?

完整批量替换方案

核心正则表达式

要匹配你描述的标题结构,完整正则如下(适配整行标题场景,避免误匹配):

^([A-Z]\w+\s[A-Z]\w+\s\[\d{2}:\d{2}:\d{2}\])$

替换规则为:

{$1}:

正则说明

  • ^/$:锚定行首行尾,确保仅匹配整行符合格式的标题
  • [A-Z]\w+:匹配首字母大写的单词(\w包含字母、数字、下划线;若需严格匹配纯字母,可替换为[A-Z][a-zA-Z]+)
  • \s:匹配单词间的空格
  • \[\d{2}:\d{2}:\d{2}\]:匹配[HH:MM:SS]格式的时间(\[/\]转义方括号,\d{2}匹配两位数字)
  • $1:引用正则中捕获的整个标题内容

常用批量实现方式

1. VS Code 编辑器批量替换

适合可视化操作单文件或多文件:

  • 打开目标文档,按Ctrl+H(Windows/Linux)或Cmd+H(macOS)打开替换面板
  • 点击面板右侧的「正则表达式」按钮(图标为.*)
  • 查找框输入上述正则,替换框输入{$1}:
  • 点击「替换全部」完成批量修改,或逐行点击「替换」确认

2. Python 脚本批量处理多文件

适合编程自动化处理大量文档:

import re
import os

# 定义匹配规则(支持多行匹配)
title_pattern = re.compile(r'^([A-Z]\w+\s[A-Z]\w+\s\[\d{2}:\d{2}:\d{2}\])$', re.MULTILINE)

def process_single_file(file_path):
    # 读取原文件内容
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    # 执行替换
    updated_content = title_pattern.sub(r'{\1}:', content)
    # 保存为新文件(避免覆盖原文件,可修改为直接覆盖)
    output_path = file_path.replace('.txt', '_modified.txt')
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write(updated_content)
    print(f"已处理:{output_path}")

# 批量处理指定目录下的所有TXT文件
target_directory = './your_document_folder'
for filename in os.listdir(target_directory):
    if filename.endswith('.txt'):
        process_single_file(os.path.join(target_directory, filename))

3. Linux/macOS 终端 sed 命令

适合快速批量处理:

  • 单文件处理(输出到新文件):
    sed -E 's/^([A-Z][a-zA-Z]+\s[A-Z][a-zA-Z]+\s\[[0-9]{2}:[0-9]{2}:[0-9]{2}\])$/{&}:/' input.txt > output.txt
    
  • 批量处理当前目录下所有TXT文件(自动备份原文件):
    for file in *.txt; do
        sed -i.bak -E 's/^([A-Z][a-zA-Z]+\s[A-Z][a-zA-Z]+\s\[[0-9]{2}:[0-9]{2}:[0-9]{2}\])$/{&}:/' "$file"
    done
    
    注:-i.bak会生成原文件的备份(如input.txt.bak),可根据需求删除备份。

适配调整方案

如果标题前后有多余空格,可修改正则为:

^\s*([A-Z]\w+\s[A-Z]\w+\s\[\d{2}:\d{2}:\d{2}\])\s*$

替换规则不变,会自动去除标题前后的空格,仅保留核心内容包裹在{}后加冒号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:05:27