如何在特定模式之前连接最后两个非空行?

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

我有一个如下列表:

1.58%
0009
1991
/////////////////////////
Phil
ttr0018
1991
/////////////////////////

现在我想在

/////////////////////////
行之前加入最后两行非空行,如下所示(我想要什么输出):

1.58%
0009 1991
/////////////////////////
Phil
ttr0018 1991
/////////////////////////

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

Find : ^(\h*\S.*)(?=\R+(?:\h*\S.*\R+)?/{24})
Replace : \1

问题出在哪里?

regex notepad++
2个回答
1
投票

目前您在比赛中使用单个捕获组。

你可能会做的是使用 2 个捕获组,并替换为

$1 $2

^(\h*\S.*)(?:\R\h*)*\R(\h*\S.*)(?:\R\h*)*(?=\R/{24})

查看 正则表达式演示

或者更短一点,使用

$1 $2\n
进行替换。

^(\h*\S.*)\R\s*^(\h*\S.*)\R\s*^(?=/{24})

正则表达式演示


0
投票

再次搜索/替换:

找到:

(.+)\R(.+)(?=\R/{3,}$)

替换为:

$1 $2

正则表达式演示

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