You need to enable JavaScript to run this app. Notepad正则搜索替换:合并匹配分支后为不同结果加指定后缀
优惠活动
大模型
产品
解决方案
定价
更多

Notepad正则搜索替换:合并匹配分支后为不同结果加指定后缀

问题核心原因

之前合并正则失效的两个关键问题:

  • 你写的合并正则(m\s.*\n.*\n.*|n\s.*\n.*\n.*) 把两个匹配分支嵌套在同一个捕获组内,不管匹配到m类还是n类内容,所有匹配结果都会被存到$1,根本没有独立的第二捕获组
  • 替换规则硬编码拼接两个后缀,不管匹配结果属于哪类,固定写在模板里的后缀都会被输出,自然会出现两个后缀同时追加的问题

可直接落地的单条合并方案

搜索正则

将两类匹配拆分为独立的顶层捕获组,避免之前的嵌套问题:

(m\s.*\n.*\n.*)|(n\s.*\n.*\n.*)

拆分逻辑:

  • 第一捕获组($1):完整匹配m开头的连续三行内容,匹配到n类内容时该组为空
  • 第二捕获组($2):完整匹配n开头的连续三行内容,匹配到m类内容时该组为空

对应替换规则

适配主流PCRE正则引擎(Notepad++、Python、新版VS Code、Sublime Text等工具均支持):

(?{1}$1 -22:$2 -11)

规则逻辑:

  • 如果第一捕获组匹配到内容(即m类三行块),直接输出完整的匹配内容,在第三行末尾追加 -22
  • 如果第二捕获组匹配到内容(即n类三行块),直接输出完整的匹配内容,在第三行末尾追加 -11
    全程不需要分两次执行替换,也不会出现多余的后缀拼接问题。

注意:执行替换前需打开编辑器的正则匹配开关,确保换行符\n可以正常跨三行匹配,避免匹配失效。


实际匹配效果

  1. 匹配到m类块时,输出结果:
    nn"h11p3ppppvxq3b288N1 m 227"]
    {vanxtageendganmesbhorgtgt(1702)}
    d3zd6xf8dz8xd6dz8f6zd8 -22
    
  2. 匹配到n类块时,输出结果:
    [nn"5rvh11p3ppppvxq3b288N1 n 227"]
    {vanxtageendganmesbhorgtgt(1802)}
    d3zd6xf8dz8xd6dz8f6zd8 -11
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 02:06:04