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

如何用EmEditor提取正则匹配字符串并保留原行结构?

解决EmEditor提取首尾单词并保留行结构的方法

方法一:用替换功能直接实现(最简单)

别用「提取>仅显示匹配字符串」,改用替换功能就能直接保留行结构:

  1. 打开「替换」对话框(快捷键Ctrl+H)
  2. 勾选「正则表达式」选项
  3. 查找栏输入:^(\w+).*?(\w+)$
    • 解释:^(\w+)匹配行首的单词,.*?匹配中间任意内容(非贪婪模式避免误匹配),(\w+)$匹配行尾的单词
  4. 替换栏按需输入:
    • 要空格分隔就写:\1 \2
    • 要逗号分隔就写:\1, \2
  5. 点击「全部替换」,直接得到目标结果:

    原内容:
    dog cat food
    prince dog food

    替换后(逗号分隔):
    dog, food
    prince, food

方法二:用宏实现(适合复杂场景)

如果需要更灵活的处理逻辑(比如跳过无首尾单词的行),可以写EmEditor宏:

  1. 打开「宏」菜单 → 「新建宏」,粘贴以下代码:
document.New(); // 新建文档存放结果
var doc = editor.Document;
var srcDoc = editor.SourceDocument;
for (var i = 1; i <= srcDoc.GetLines(); i++) {
    var line = srcDoc.GetLine(i);
    var matches = line.match(/^(\w+).*?(\w+)$/);
    if (matches) {
        // 可自行调整分隔符,比如改成matches[1] + " | " + matches[2]
        doc.Text += matches[1] + ", " + matches[2] + "\n";
    } else {
        // 无匹配时可选择保留原行或跳过,这里是保留原行
        doc.Text += line + "\n";
    }
}
  1. 保存宏后运行,就能在新文档里得到保留行结构的提取结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:47:40