为第二行仅包含日期的连续两行添加书签

问题描述 投票:0回答:1

我有一个如下列表:

hrthrhthrht
bntyjhytjtyj
8,083,344
Mar1996
tggrgge

现在我需要一个记事本++正则表达式来为以下两行添加书签:

8,083,344
Mar1996

这意味着第一行以数字开头,第二行仅包含日期或以下正则表达式的连续两行:

\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b

我尝试了以下正则表达式,但对我不起作用:

^[^\d\r\n]*(?:\D*(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4})[^\d\r\n]*$

^[^\d\r\n]*(?:\D*(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4})[^\d\r\n]*\R[^\d\r\n]*(?:\D*(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4})[^\d\r\n]*$

^[^\d\r\n]*(?:\D*(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4})[^\d\r\n]*\R[^\d\r\n]*(?:\D*(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4})[^\d\r\n]*$

^[^\d\r\n].*\R\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b.*$

^[^\d\r\n].*\R^[^\d\r\n].*\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b.*$

^[^\d\r\n].*\R[^\d\r\n].*\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b.*$

^[^\d\r\n].*\R^[^\d\r\n].*\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b

^[^\d\r\n].*\R[^\d\r\n].*(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}\b

问题出在哪里?
请注意,第一行应以数字开头。

regex notepad++
1个回答
0
投票

您可以根据需要使用此正则表达式来匹配 2 个连续行:

^\d+(?:,\d+)*$\r?\n[^\d\r\n]*(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}[^\d\r\n]*$

正则表达式演示

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