使用 RegEx 多行在 Notepad++ 中搜索连续的时间表
Search consecutive schedule in Notepad++ using RegEx multiline
我的要求是在 Notepad++ 上搜索,示例文本如下:
UM001 Uddharana Madhava
Date: 3/6/2021, Thursday
Topic: Bangla Economics
Language: Bengali
Date: 4/6/2021, Friday
Topic: Bangla Economics
Language: Bengali
Date: 3/6/2021, Thursday
Topic: Bangla Economics
Language: English
CJ009 Cidananda Janardana
Date: 3/6/2021, Thursday
Topic: Bangla Economics
Language: Telugu
搜索结果应突出显示
UM001 Uddharana Madhava
Date: 3/6/2021, Thursday
Topic: Bangla Economics
Language: Bengali
Date: 4/6/2021, Friday
Topic: Bangla Economics
Language: Bengali
不应该从其他老师的日程表中突出显示
Date: 3/6/2021, Thursday
Topic: Bangla Economics
Language: English
CJ009 Cidananda Janardana
Date: 3/6/2021, Thursday
Topic: Bangla Economics
Language: Telugu
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: Bengali\n+Date:
见附件
或
查找: ^Language: Bengali\n*Date.*
您想要的结果将如下所示,
仅突出显示具有多个日期部分的部分:
^[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++ 上搜索,示例文本如下:
UM001 Uddharana Madhava Date: 3/6/2021, Thursday Topic: Bangla Economics Language: Bengali Date: 4/6/2021, Friday Topic: Bangla Economics Language: Bengali Date: 3/6/2021, Thursday Topic: Bangla Economics Language: English CJ009 Cidananda Janardana Date: 3/6/2021, Thursday Topic: Bangla Economics Language: Telugu
搜索结果应突出显示
UM001 Uddharana Madhava Date: 3/6/2021, Thursday Topic: Bangla Economics Language: Bengali Date: 4/6/2021, Friday Topic: Bangla Economics Language: Bengali
不应该从其他老师的日程表中突出显示
Date: 3/6/2021, Thursday Topic: Bangla EconomicsLanguage: English CJ009 Cidananda Janardana Date: 3/6/2021, Thursday Topic: Bangla Economics Language: Telugu
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: Bengali\n+Date:
见附件
或
查找: ^Language: Bengali\n*Date.*
您想要的结果将如下所示,
仅突出显示具有多个日期部分的部分:
^[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.