如何在记事本++上使用正则表达式在前一行前面插入一行?
How do i insert a line in front of a previous line using regex on notepad++?
例如,我想要以下列表:
E|MG000|HIST|062575|08012019|062575|MG003
L|22WBM3|1|1871.1
E|MG000|HIST|020590|31012019|020590|MG003
L|10B771D015|-4|8.488
E|MG000|HIST|062575|21022019|062575|MG003
L|22WBM3|-1|1871.1
看起来像这样:
E|MG000|HIST|062575|08012019|062575|MG003 - L|22WBM3|1|1871.1
E|MG000|HIST|020590|31012019|020590|MG003 - L|10B771D015|-4|8.488
E|MG000|HIST|062575|21022019|062575|MG003 - L|22WBM3|-1|1871.1
尝试(?m)^(E\|(?:(?!L\|).)+)\s+^(L\|.*(?:\r?\n)?)
替换 -
- Ctrl+H
- 查找内容:
\R(?=L)
- 替换为:
-
(space 连字符 space)
- 检查 匹配大小写
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
\R # any kind of linebreak
(?= # positive lookahead, make sure we have after:
L # letter L
) # end lookahead
屏幕截图(之前):
截图(后):
例如,我想要以下列表:
E|MG000|HIST|062575|08012019|062575|MG003
L|22WBM3|1|1871.1
E|MG000|HIST|020590|31012019|020590|MG003
L|10B771D015|-4|8.488
E|MG000|HIST|062575|21022019|062575|MG003
L|22WBM3|-1|1871.1
看起来像这样:
E|MG000|HIST|062575|08012019|062575|MG003 - L|22WBM3|1|1871.1
E|MG000|HIST|020590|31012019|020590|MG003 - L|10B771D015|-4|8.488
E|MG000|HIST|062575|21022019|062575|MG003 - L|22WBM3|-1|1871.1
尝试(?m)^(E\|(?:(?!L\|).)+)\s+^(L\|.*(?:\r?\n)?)
替换 -
- Ctrl+H
- 查找内容:
\R(?=L)
- 替换为:
-
(space 连字符 space) - 检查 匹配大小写
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
\R # any kind of linebreak
(?= # positive lookahead, make sure we have after:
L # letter L
) # end lookahead
屏幕截图(之前):
截图(后):