使用正则表达式删除行首到字符串末尾的 n 个字符

使用正则表达式删除行首到字符串末尾的 n 个字符

我在 Notepad++ 中尝试了几种不同的正则表达式字符串,但无法弄清楚如何实现前瞻部分。我有几千行文本,正在尝试删除可变数量的字符,并从行尾保留固定数量的字符。示例:

输入:

alhsoidoli aoisudoifu oaisoi
iodaoiu a;osidh ;oaiyu ;oisdlhidadsli
LOIHYoihdlhi OIHlohi LOHIOOLhiol oo

输出:

ifu oaisoi
dlhidadsli
OOLhiol oo

因此,查找条件将匹配行尾的最后 10 个字符并保留该字符,删除整行的其余部分。我没有可以匹配的特殊分隔符;每行都非常不同。我唯一知道的是从行尾开始的固定字符数。谢谢!

答案1

以下是完成这项工作的方法:

  • Ctrl+H
  • 找什么:^.*(?=.{10}$)
  • 用。。。来代替:LEAVE EMPTY
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

^               # beginning of line
  .*              # 0 or more any character but newline
  (?=             # positive lookahead, make sure we have after:
    .{10}           # exactly 10 any character
    $               # end of line
  )               # end lookahead

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

相关内容