RegEx 字符串查找两个字符串并删除文件中的其余文本

RegEx string to find two strings and delete the rest of the text in the file

我需要用记事本+++查找并删除文本文件中的其余部分 我想你使用 RegeX 来查找 thban 的变体.....变量后面最多有 5 个字符(见圆点)。 使用我的搜索字符串,它击中了最后一行但整行。我只想保留这个词。 当这有效时,我也想保留包含 C3 的词..... 可以删除 tekst 文件的其余部分。 它也应该不区分大小写

(?!thban\w+).*\r?\n?

\

THBANES900 and C3950 bla bla
THBAN
..THBANES901.. C3850 bla bla
THBANMP900
**..thbanes900..**

这应该导致

THBANES900 C3950
THBAN
THBANES901 C3850
THBANMP900
thbanes900

也许只是捕捉那些感兴趣的词而不是替换其他所有词?在 Notepad++ 中搜索模式:

^.*\b(thban\S{0,5})(?:.*(\sC3\w+))?.*$|.+

Online Demo

  • ^ - 开始字符串 ancor。
  • .*\b - 除换行符以外的任何字符零次或多次达到单词边界。
  • (- 打开第一个捕获组。
    • thban\S{0,5} - 匹配 "thban" 和零个或 5 个非空白字符。
    • ) - 关闭第一个捕获组。
  • (?: - 打开非捕获组。
    • .* - 除换行符以外的任何字符零次或多次。
    • ( - 打开第二个捕获组。
      • \sC3\w+ - 一个空白字符,匹配 "C3" 和一个或多个单词字符。
      • ) - 关闭第二个捕获组。
    • )? - 关闭非捕获组并使其可选。
  • .* - 除换行符以外的任何字符零次或多次。
  • $ - 结束字符串锚点。
  • | - 交替(或)。
  • .+ - 除换行符以外的任何字符一次或多次。

替换为:



在此之后,您可能会得到一个空行,您可以使用内置选项迅速将其删除。我不知道英文术语,所以我制作了一个 GIF 来告诉你在哪里可以找到这些按钮:

我不确定忽略大小写的英文复选按钮是什么。但请确保未勾选。

您可以使用

查找内容(?|\b(thban\S{0,5})|\s(C3\w+))|(?s:.)
替换为(?1\n:)

屏幕截图和设置

详情

  • (?| - 分支重置组的开始:
    • \b(thban\S{0,5}) - 第 1 组:单词边界,然后是 thban 和任何 0 到 5 个非空白字符
    • | - 或
    • \s(C3\w+) - 一个空白字符,然后是第 1 组:C3 和一个或多个单词字符
  • ) - 分支重置组结束
  • | - 或
  • (?s:.) - 任何一个字符(包括换行字符)

替换为

  • (?1 - 如果第 1 组匹配,
    • \n - 带换行符的第 1 组值
    • : - 否则,替换为空字符串
  • ) - 条件替换模式结束