Notepad++ 中的 RegEx 查找和替换字符串

RegEx in Notepad++ to find and replace strings

我试图在 Notepad++ 上使用 RegEx 查找和替换字符串,但无法识别正确的表达式来执行此操作:

这是数据:

TRAIN-II
TRAIN
TRAIN-I
AIRPLANE-II
AIRPLANE
AIRPLANE-I
SHIP-II
SHIP
SHIP-I

好吧,我只想保留以“-II”为后缀的字符串。简单来说,我只想保留:

TRAIN-II
AIRPLANE-II
SHIP-II

有人可以帮忙吗?

使用正则表达式标记行,然后删除未标记的行。

打开搜索 window,然后打开 "Mark" 选项卡。 在 "Find what" 框中输入 -II$。 Select "Regular expressions"。 Select "Match case" 如果 "II" 必须大写。 Select "Bookmark line"。点击 "Mark all"。期望看到用蓝色圆圈标记的通缉线。使用菜单 => 搜索 => 书签 => 删除未标记的行。

  • Ctrl+H
  • 查找内容:^.*(?<!-II)(?:\R|\Z)
  • 替换为:LEAVE EMPTY
  • 检查 环绕
  • 检查 正则表达式
  • 取消选中 . matches newline
  • 全部替换

解释:

^               # beginning of line
  .*            # 0 or more any character but newline
  (?<!-II)      # negative lookbehind, make sure we haven't -II before the following
  (?:\R|\Z)     # non capture group, any kind of linebreak (i.e. \r, \n, \r\n) or end of file

截图(之前):

截图(之后):