【问题标题】:Search consecutive schedule in Notepad++ using RegEx multiline使用 RegEx 多行在 Notepad++ 中搜索连续日程
【发布时间】:2021-12-16 01:36:57
【问题描述】:

我的要求是在 Notepad++ 上搜索,示例文本如下所示:

UM001 乌达茹阿那玛达瓦 日期:2021 年 3 月 6 日,星期四 主题:孟加拉经济 语言:孟加拉语 日期:2021 年 4 月 6 日,星期五 主题:孟加拉经济 语言:孟加拉语 日期:2021 年 3 月 6 日,星期四 主题:孟加拉经济 英语语言 CJ009 Cidananda Janardana 日期:2021 年 3 月 6 日,星期四 主题:孟加拉经济 语言:泰卢固语

搜索结果应该突出显示

UM001 乌达茹阿那玛达瓦 日期:2021 年 3 月 6 日,星期四 主题:孟加拉经济 语言:孟加拉语 日期:2021 年 4 月 6 日,星期五 主题:孟加拉经济 语言:孟加拉语

它不应该从其他教师的日程安排中突出显示

日期:2021 年 3 月 6 日,星期四 主题:孟加拉经济 语言:英语 CJ009 Cidananda Janardana 日期:2021 年 3 月 6 日,星期四 主题:孟加拉经济 语言:泰卢固语
Language(.+?)Date

上面的搜索模式不起作用,所以我尝试了

Language(.+?)(?![A-Z][A-Z]\d{3})Date
Language(.+?)(?![A-Z][A-Z]\d{3})(.+?)Date

这两个也不起作用。 请建议我怎样才能达到预期的结果。 这是我正在寻找的,如果语言和日期之间有名称,则不应被捕获。 Here is a link of image which shows my requirement

【问题讨论】:

  • 你到底想在这里找到什么?
  • 你在找这个吗:^Language:.*$\s*\nDate ?
  • ^Language:.+\R\RDate:

标签: regex notepad++


【解决方案1】:

你的回答不清楚你想强调什么,但我猜你想要这个......
查找:^Language: Bengali\n+Date:

见附件

或者

查找: ^Language: Bengali\n*Date.*

您想要的结果将如下所示,

【讨论】:

  • 非常感谢您花时间了解我的要求并提供解决方案。但我正在寻找的是,第一次搜索应该在第 5、6、7 行(在你的第一张图片中)选择 Language to Date 并找到下一个应该选择第 9、10、11 行但下一个查找不应该选择行号中的文本13 到 17。希望有帮助。
  • 两个附件都已更新 ,,, 请注意\n+ 将尽可能多地突出显示语言和日期之间的空行....
  • 这帮助我构建了搜索表达式,因此它突出显示了任何语言。这是我的代码:^Language: \w+\n+Date:
  • 当然\w+ 会突出显示任何单词和数字,但您应该按字面意思写孟加拉语以帮助引擎识别您的模式„使用我的第一个示例,避免使用您的正则表达式
【解决方案2】:

仅突出显示具有多个日期部分的部分:

^[A-Z][A-Z]\d{3}\b\h+\S.*\s*(?>\RDate:\h.*(?:\R(?!Date:|[A-Z][A-Z]\d{3}\b).*)*){2,}

模式匹配:

  • ^ 字符串开始
  • 例如[A-Z][A-Z]\d{3}\b匹配值的格式UM001
  • \h+\S.*\s* 匹配 1+ 个水平空白字符,至少一个非空白字符和该行的其余部分。然后匹配可选的空白字符,也可以匹配换行符
  • (?>原子团
    • \RDate:\h.* 匹配一个换行符,Date: 和该行的其余部分
    • (?:\R(?!Date:|[A-Z][A-Z]\d{3}\b).*)* 匹配所有不以Date: 或类似起始值的模式开头的行
  • ){2,}关闭群组并重复 2 次或更多次

查看regex demo

【讨论】:

  • 这真的很有希望,不知何故不适用于 Notepad++。
  • @HiM 它适用于我的 Notepad++ V7.9.1 例如这里的替换参见imgur.com/a/xNQ9v3D
  • 有趣,我的 Notepad++ 是 v8.1.5,在这种情况下应该可以工作。但它向我抛出错误“找不到文本......”。我的搜索模式是正则表达式。但是你的代码太好了,虽然我需要一些时间来掌握它。我会让它工作。 :)
  • @HiM 我从问题中复制了文本,可能在字符串的开头或日期部分之前有空格。尝试使用可选的前导空格regex101.com/r/LiN9fW/1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-12
  • 2013-10-18
  • 2013-01-20
  • 2022-12-12
  • 1970-01-01
相关资源
最近更新 更多