为以数字开头且连续的行添加书签,同时跳过其他一些行

问题描述 投票:0回答:1
我有一个如下列表:

Peie 71,176,953 T-re 71,173,557 5-Mts 41,653,495 45678 Sia 36,136,829 36,100,829 4-Diepi 120,829 uteCra 36,100 Oct2018
现在我想为以数字开头且连续的行添加书签,同时跳过 

4-Diepi

5-Mts
month lines

我尝试遵循正则表达式,但失败了!

^(?:4-Diepi|5-Mts|.*\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b.*)$(*SKIP)(*F)|^\d+.*\R(\d+.*)$

5-Mts

行没有被忽略

我只想为以下几行添加书签:

41,653,495 45678 36,136,829 36,100,829
我的正则表达式问题出在哪里?

regex notepad++
1个回答
0
投票
因为

(*SKIP)(*F)|

 模式不会有效地消耗第二行数字。解决此问题的一种方法是在排除模式的开头放置一个可选的 
(?:^\d+.*\R)?
 来过滤掉排除的模式是否在第二行:

(?:^\d+.*\R)?(?:4-Diepi|5-Mts|.*\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b.*)$(*SKIP)(*F)|^\d+.*\R(\d+.*)$
查看

测试用例

© www.soinside.com 2019 - 2024. All rights reserved.