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

如何在Notepad++中使用多行RegEx搜索符合要求的连续日程

解决方案

前置设置

  • 打开Notepad++查找(快捷键Ctrl+F)窗口,切换到对应操作选项卡
  • 底部搜索模式选择「正则表达式」
  • 勾选「.匹配换行符」选项,开启跨行匹配能力

正确正则表达式

Language((?:(?![A-Z]{2}\d{3}[\u4e00-\u9fa5]+|Date).)*)Date
如果教师标识的姓名部分包含英文、数字等非中文字符,可将姓名匹配规则调整为非贪婪匹配,修改后正则为:
Language((?:(?![A-Z]{2}\d{3}.+?|Date).)*)Date

如果需要提取Language和Date之间的内容,直接取第一个分组的匹配结果即可。

规则说明

核心使用否定式正向预查,在匹配中间每一个字符时都做两次校验:

  • 接下来的内容不能是教师标识(两位大写字母+三位数字+姓名)
  • 接下来的内容不能是Date关键字
    满足以上两个条件的字符才会被匹配,直到碰到Date关键字停止,不会跨教师匹配。

之前正则失效的原因

  • Language(.+?)Date:没有做教师标识过滤,只要中间存在Date就会匹配,会跨多个教师的日程
  • 带(?![A-Z][A-Z]\d{3})的版本:负向预查放在了(.+?)之后,只会在(.+?)匹配结束后判断一次,不会在匹配过程中每一步校验,只要最终匹配到的Date前没有紧挨着教师标识就会返回结果,无法过滤中间存在教师标识的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:03