选择以字符开头的连续行区域

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

我有一个如下列表:

ABC
44234234
GHG
FGyhyh
Nov2016
/////////////////////////
ABCtt
44234234
GHG
00
FGyhyh
Nov2015
/////////////////////////
ABC
44234234
GHG
hyh
Jan2022
/////////////////////////

使用

^[A-Za-z].*\R([A-Za-z].*)$
正则表达式,我可以选择以字符开头的连续行,但现在我想选择列表中的整个区域,这意味着位于正则表达式目标之前和之后的两个
/////////////////////////
之间。
例如在上面的列表中我想选择以下内容:

ABC
44234234
GHG
FGyhyh
Nov2016

ABC
44234234
GHG
hyh
Jan2022

我尝试了以下正则表达式,但失败了:

^/+\R\K(?:(?!/+$|^[A-Za-z].*\R[A-Za-z].*$).*\R)*^[A-Za-z].*(?:\R[A-Za-z].*)*(?:\R(?!/+$).*)*(?=\R/+$)
^/+\R\K(?:(?!/+$|\d[\d,]*\R\d[\d,]*$).*\R)*^[A-Za-z].*(?:\R[A-Za-z].*)*(?:\R(?!/+$).*)*(?=\R/+$)

请注意,以下正则表达式适用于以数字开头的连续行:

^/+\R\K(?:(?!/+$|\d[\d,]*\R\d[\d,]*$).*\R)*\d[\d,]*(?:\R\d[\d,]*)+(?:\R(?!/+$).*)*(?=\R/+$)

但我不知道如何为字符行重写这个正则表达式!
请注意,正则表达式必须跳过日期行。

regex notepad++
1个回答
0
投票

您可以使用这个正则表达式:

^(?:[A-Za-z\d].*\R)+(?:[A-Za-z].*\R){2}(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\d{4}$

正则表达式演示

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