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

如何用Notepad++正则匹配字符串第二次出现至末尾并批量替换?

解决Notepad++批量替换第二个title值的正则方案

刚帮你捋了下这个Notepad++正则替换的问题,核心就是精准定位到每行里第二个title字段的值,别把第一个"Department"给改了对吧?结合你的数据,我给你两种实用的解决方案:

场景1:把所有第二个title替换成固定内容

比如你想统一改成"AWESOME CUSTOM TEXT",操作步骤如下:

  1. 打开Notepad++,按下Ctrl+H调出替换窗口
  2. 切换到「正则表达式」模式,记得勾选「匹配换行符」(确保每行独立处理,不会跨行匹配)
  3. 在「查找目标」里粘贴这个正则:
    (.*?"title":"Department".*?"title":")([^"]+)
    
    👉 正则逻辑拆解:
    • .*?"title":"Department":从行首开始,匹配到第一个title":"Department的全部内容(用.*?非贪婪模式,避免过度匹配后面的内容)
    • .*?"title":":接着匹配到第二个title":"的位置
    • ([^"]+):捕获第二个title后面的所有非双引号内容——这就是你要替换的目标值
  4. 在「替换为」里输入:
    $1AWESOME CUSTOM TEXT
    
    👉 这里的$1是引用前面正则里第一个捕获组的内容(也就是从行首到第二个title":"的所有内容),后面直接跟上你要替换的固定文本就行。

场景2:动态替换为每行里的特定值(比如行首的字符串)

看你的数据,第一行开头有'AWESOME',第二行有'MO IS AWESOME',如果你想把第二个title的值和这个开头的字符串关联(比如第一行改成"AWESOME 1",第二行改成"MO IS AWESOME 2"),可以用这个进阶正则:

「查找目标」:

^(\(\d+, \d+, \d+, '([^']+)', .*?"title":"Department".*?"title":")([^"]+)

「替换为」:

$1$2 1

👉 这个正则多捕获了行首的那个字符串(比如AWESOME),用$2引用它,后面可以加自定义后缀。如果你想对应每行的id调整后缀,再微调捕获组即可。

测试示例

拿你的第一行原始数据测试:

(405, 1, 1, 'AWESOME', 1, 752, 1, 753, 1, '[{"id":1,"left":1,"right":714,"title":"Department"},{"id":405,"left":752,"right":753,"title":"CHANGE THIS TO AWESOME 1"}]')

用场景1的正则替换后,会变成:

(405, 1, 1, 'AWESOME', 1, 752, 1, 753, 1, '[{"id":1,"left":1,"right":714,"title":"Department"},{"id":405,"left":752,"right":753,"title":"AWESOME CUSTOM TEXT"}]')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:03:29