我需要帮助才能使用 Notepad++ 将行从下面的文本移动到上一行。
我可以使用正则表达式吗?
PID: AIR-CAP3502I-T-K9, VID: V01, SN: 0000000000
Inventory for XXXXXXXXXXX
PID: AIR-CAP3502I-T-K9, VID: V01, SN: 0000000000
Inventory for XXXXXXXXXXX
PID: AIR-CAP3502I-T-K9, VID: V01, SN: 0000000000
[在此输入图像描述]
TM
我尝试使用一些正则表达式,但它没有按预期工作。
Search: \n(.+)$
Replace: $1
Search: \n(.+)
Replace: $1
假设您想将
Inventory for
行移动到前面的行,并用空格分隔,您可以在正则表达式模式下使用以下查找和替换:
Find: \R\s{5,}
Replace: (single space)
图案说明:
\R
匹配 LF \n
或 CRLF \r\n
\s{5,}
然后匹配 5 个或更多空格(任意)引导下一行然后,我们只用一个分隔空格替换。
如果前一行应该是单行,并且您不想移动空行或仅包含空格的行,则可以捕获组 1 中至少一个非空白字符并匹配前面由空格包围的换行符.
在替换中使用空格,后跟组 1 的值。
查找内容:
\h*\R\h{2,}(\S)
替换为:
$1
模式匹配:
\h*
匹配可选的水平空白字符\R
匹配任何 Unicode 换行符\h{2,}
匹配 2 个或更多水平空白字符(\S)
捕获组 1 中的单个非空白字符查看 正则表达式演示。
正则表达式
\n(.+)$
将匹配换行符后面的任何内容,直到行尾。但是,您似乎想匹配以“PID”开头的任意两行,然后删除中间的换行符。
这有效:
^PID(.*)\r\n(.*)$
和PID$1 $2
。
请注意,Notepad++ 使用的正则表达式方言对于
\n
来说不是很聪明,因此要匹配 Windows 换行符(即 CR+LF),您必须专门使用 \r\n
(并确保正则表达式引擎不会匹配换行符 .
)