如何在记事本++上使用正则表达式在前一行前面插入一行?

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)?)
替换 -

demo

  • Ctrl+H
  • 查找内容:\R(?=L)
  • 替换为:-(space 连字符 space)
  • 检查 匹配大小写
  • 检查 环绕
  • 检查 正则表达式
  • 全部替换

解释:

\R          # any kind of linebreak
(?=         # positive lookahead, make sure we have after:
    L         # letter L
)           # end lookahead

屏幕截图(之前):

截图(后):