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

Notepad++正则提取内容失效,求三类目标结果的解决方案

解决Notepad++三类文本提取的正则方案

嘿,我来帮你搞定这三个文本提取需求!先假设你的目标文本是类似「名称 (年份) 描述内容」的结构(比如星际穿越 (2014) 一部关于太空旅行和虫洞的科幻电影),下面给你每个需求的精准正则方案,亲测适配Notepad++的正则引擎:

1. 提取「名称 + (年份)」

要保留名称和带括号的年份、去掉后续描述,按以下步骤操作:

  • 打开Notepad++的「查找替换」窗口(快捷键Ctrl+H)
  • 查找框输入:^(.*?\(\d{4}\))\s.*$
  • 替换框输入:$1
  • 勾选「正则表达式」选项(注意不要选「.匹配换行符」)
  • 点击「全部替换」

解释:^匹配行首,(.*?\(\d{4}\))会精准捕获从行首到带4位年份的括号结束的内容(也就是名称+年份),\s.*$匹配年份后的空格和所有描述内容,替换为捕获组$1就只保留你要的部分。

2. 仅提取年份

单独提取括号里的年份,操作如下:

  • 查找框输入:^.*?\((\d{4})\).*$
  • 替换框输入:$1
  • 同样勾选「正则表达式」后执行替换

解释:\((\d{4})\)专门捕获括号内的4位年份,前后的^.*?和.*$会匹配掉所有其他无关内容,替换后就只剩年份数字。

3. 提取描述(去掉名称和年份)

要保留年份后面的描述内容,去掉前面的名称+年份:

  • 查找框输入:^.*?\(\d{4}\)\s(.*)$
  • 替换框输入:$1
  • 执行替换即可

解释:^.*?\(\d{4}\)\s会匹配掉从行首到年份括号后的空格部分,(.*)$捕获剩下的所有描述内容,替换后就得到纯描述。

关于你之前正则失效的原因

你之前用的^.*(?=\)) \((.*?)\]有几个明显问题:

  1. 括号不匹配:结尾用了\](方括号转义),但目标文本里年份是用圆括号)包裹的,应该改成\)
  2. 逻辑顺序错误:(?=\))是正向预查匹配),但后面又写了\(匹配(,顺序完全颠倒,导致无法正确定位结构
  3. 没有精准匹配年份的4位数字结构,用.*?太宽泛,容易匹配到无关内容

如果你的文本有特殊情况(比如名称里带括号、年份不是4位),可以给我具体的样例,我再调整正则~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:56:44