正则表达式:删除除“SS”后跟 4 到 8 个字符之外的所有文本

正则表达式:删除除“SS”后跟 4 到 8 个字符之外的所有文本

我有一个长文本文件,如下所示:

种:Sorbus subcuneata | 萨默塞特白面子树 日期:2007-09-30 英格兰 OSGR:SS7448

种:Sorbus subcuneata | 萨默塞特白面子树 日期:2007-09-30 英格兰 OSGR:SS7448

种:Sorbus subcuneata | 萨默塞特白面子树 日期:2001-10-02 英格兰 OSGR:SS74394901

我想提取仅有的“SS****”字符串(有些有 4 位数字,有些有 6 位,有些有 8 位)。

我已经在论坛上搜索了有关正则表达式的各种解释,但它们似乎都是更为复杂的场景,而我太菜鸟了,无法对它们进行逆向工程来做一些这样简单的事情。

提前感谢任何提示!

答案1

以下是在 Notepad++ 中执行此操作的一种方法:

  • Ctrl+M
  • 将搜索模式设置为正则表达式
  • 找什么 :\bSS(\d){4,8}$
  • 单击“标记全部”
  • 点击复制标记的文本
  • 打开新的文本文件
  • Ctrl+V粘贴复制的文本。

在此处输入图片描述

答案2

  • Ctrl+F
  • 找什么:\bSS(?:\d\d){2,4}\b
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • Find All in Current Document

解释:

\b          # word boundary
SS          # literally SS
(?:         # non capture group
  \d\d        # 2 digits
){2,4}      # group may appear 2,3 or 4 times
\b          # word boundary

截屏:

在此处输入图片描述


如果要删除除 之外的所有内容SS...,请使用:

  • Ctrl+H
  • 找什么:^.*?\b(SS(?:\d\d){2,4})\b.*$
  • 用。。。来代替:$1
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

相关内容