有没有办法在 Notepad ++ 中一次将正则表达式 find/replace 应用于一定数量的行?

Is there a way to apply a regex find/replace in Notepad ++ to a certain number of lines at a time?

我有一个大型文档,我正在手动突出显示其中的 8 行,并使用替换(在选择中)将它们连接成一行,以逗号分隔以便导入到 CSV 中。有没有办法将其应用于整个文档,一次 8 行?正则表达式查找为 (\h*\R)+ 替换为 \x20,.

如果通过其他插件或应用程序有更好的解决方案,我会洗耳恭听!

示例:

MS-AP-RM-107


DHCP

10.2.54.75

MS-AP-RM-107

MS

PoE/Medium Power (15.4 W)

AIR-CAP3702I-A-K9

FCW2013NM20

HS-AP-RM-113

DHCP

10.2.54.74

HS-AP-RM-105

HS

PoE/Medium Power (15.4 W)

AIR-CAP3702I-A-K9

FCW2013NP3H

变成:

MS-AP-RM-107 ,DHCP ,10.2.54.75 ,MS-AP-RM-107 ,MS ,PoE/Medium Power (15.4 W) ,AIR-CAP3702I-A-K9 ,FCW2013NM20
HS-AP-RM-113 ,DHCP ,10.2.54.74 ,HS-AP-RM-105 ,HS ,PoE/Medium Power (15.4 W) ,AIR-CAP3702I-A-K9 ,FCW2013NP3H

在单步方法中,您可以通过 8 行的显式匹配来完成,它有点难看,但它会起作用。

因此您采用匹配 1 行的模式:

(.*?)(?:\h*\R)+

第一个“1”是为了尽可能少地匹配,第二个是使第二个括号对成为非捕获组,同时允许重复,因为您的正则表达式似乎将空行组合在一起。如果不需要,请删除“+”。

重复8次:

(.*?)(?:\h*\R)+(.*?)(?:\h*\R)+(.*?)(?:\h*\R)+(.*?)(?:\h*\R)+(.*?)(?:\h*\R)+(.*?)(?:\h*\R)+(.*?)(?:\h*\R)+(.*?)(?:\h*\R)+

然后使用以下替换:

 , , , , , , ,\n

如果行数不是8行的倍数,它不会处理文件的最后几行,但我想你可以手动处理它们。

Try it online!