使用正则表达式删除Notepad ++中数字后面出现的文本

时间:2013-11-27 12:25:19

标签: regex replace notepad++

我有一个包含许多时间戳的大文本文件。时间戳如下所示:2013/11/14 06:52:38AM。我需要从每个字符中删除最后两个字符(上午/下午/上午/下午)。问题是,简单地查找和替换“AM”可能会从文件的其他部分(包含许多其他文本)中删除文本。

我使用正则表达式(:\d\d[ap]m)完成了一个查找,在上面的示例中将跟踪时间戳的最后一位::38AM。我现在需要用:38替换它,但我不知道这是怎么做的(在冒号后允许两位数的任意组合)。

非常感谢任何帮助。

编辑:我需要的是用(:\d\d)[ap]m替换\1

2 个答案:

答案 0 :(得分:1)

(:\d\d[ap]m)设为(:\d\d)[ap]m并使用$1而非\1

答案 1 :(得分:0)

转到Search> Replace菜单(快捷键 CTRL + H )并执行以下操作:

  1. 找到:

    [0-9]{2}\K[AP]M
    
  2. 替换:

    [leave empty]
    
  3. 选择单选按钮“正则表达式”

  4. 然后按Replace All

  5. 您可以在regex101进行测试。

    注意:[0-9]的使用通常优于\dread why),并且避免在使用$1时使用捕获组\K被认为更好。在你的情况下,这绝对不重要,但最好知道:)