有没有办法在 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行的倍数,它不会处理文件的最后几行,但我想你可以手动处理它们。
我有一个大型文档,我正在手动突出显示其中的 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行的倍数,它不会处理文件的最后几行,但我想你可以手动处理它们。