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

如何在Notepad++中用正则表达式替换行内容并保留指定片段?

解决Notepad++中《钢铁雄心II》CSV文件的逐行替换问题

你的需求很明确——要保留每行里第一个分号前的标识和第一个、第二个分号之间的英文描述,把中间冗余的STUFF部分删掉,只留下末尾的;;;;;;;;;;X。之前尝试的正则没精准定位到要保留的内容,所以没达到预期效果,我给你一个可行的方案:

正确的正则替换规则

  1. 打开Notepad++的替换窗口(快捷键Ctrl+H)
  2. 切换到「正则表达式」模式(务必勾选下方的「正则表达式」选项,不要勾选「.匹配换行符」)
  3. 在「Find what」中输入:
    ^([^;]+;[^;]+);.*?(;;;;;;;;;;X)$
    
  4. 在「Replace with」中输入:
    \1;\2
    
  5. 点击「Replace All」完成批量替换

正则规则解释

  • ^([^;]+;[^;]+):这是第一个捕获组,专门抓取你要保留的前两部分内容——[^;]+匹配第一个分号前的所有非分号字符(比如EE_START_RESEARCH),接着匹配分号,再匹配第二个分号前的所有非分号字符(比如Start researching %s.)
  • ;:匹配第二个分号之后的那个分隔符,也就是冗余内容的起始位置
  • .*?:非贪婪模式匹配任意字符,确保只会抓到冗余的STUFF部分,不会误吞末尾的;;;;;;;;;;X
  • (;;;;;;;;;;X)$:第二个捕获组,精准抓取行尾需要保留的10个分号加X的固定格式

效果示例

原行:

EE_START_RESEARCH;Start researching %s.;STUFF;STUFF;STUFF;STUFF;STUFF;;;;;X

替换后会变成:

EE_START_RESEARCH;Start researching %s.;;;;;;;;;;X

之前你尝试的正则要么是匹配整行后重复内容,要么是没有精准划分保留区域,所以才会失败。这个规则刚好命中你需要保留的核心内容,同时剔除冗余部分,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:17:01