如何删除下一个冒号后的所有内容

如何删除下一个冒号后的所有内容
Test123:Password:7 AUG 2018
Test123:Password:7 AUG 2018
Test123:Password:7 AUG 2018

我想删除所有行中第二个冒号后的所有内容,

我试过了^([^:]*.[^:]*):.*$,但没有用,

答案1

您的正则表达式看起来不错,我怀疑问题是您没有告诉 notepad++(我假设您正在使用该编辑器,因为它存在于标签中)您想要保留您定义的组,而不是整个匹配(在您的例子中恰好是整行)。

您将在对话框中看到:

搜索:

^([^:]*.[^:]*):.*$

用。。。来代替:

\1

第二部分表示您要保留第一组字符,或者换句话说,删除其余部分。在这种情况下,您定义的正则表达式表示:将所有包含两个以上“:”的行替换为第二个“:”出现之前的内容。

答案2

  • Ctrl+H
  • 查找内容:^(?:[^:]+:){2}\K.+$或者^[^:]+:[^:]+\K:.+$如果您想删除第二个冒号
  • 用。。。来代替:LEAVE EMPTY
  • 检查环绕
  • 检查正则表达式
  • 请勿检查. matches newline
  • Replace all

解释:

^           # beginning of line
  (?:       # start non capture group
    [^:]+   # 1 or more any character that is not a colon
    :       # 1 colon
  ){2}      # end group, must appear twice
  \K        # forget all we have seen until this position
  .+        # 1 or more any character
$           # end of line

给定示例的结果:

Test123:Password:
Test123:Password:
Test123:Password:

或(取决于使用的正则表达式)

Test123:Password
Test123:Password
Test123:Password

相关内容