用给定的输入替换不匹配的正则表达式

时间:2018-09-17 13:16:19

标签: regex regex-negation

我有一个像下面这样的字符串。

update comment for line OBC-1234:Message is this

我想从上述字符串中匹配OBC-1234:Message is this

我使用的正则表达式为\w*-\d+:(\w+\s?)+

我使用的工具只有一个功能,可以用某些输入参数替换匹配的正则表达式。 这意味着它将首先匹配字符串中的正则表达式,并将其替换为给定的输入。 但是我的要求是用给定的输入替换不匹配的字符串。

输出应如下所示

update comment for line input

我知道可以通过取反来实现,但是我不知道如何将它用于更大的字符串。请帮忙。

2 个答案:

答案 0 :(得分:1)

使用:

  • 查找:^(.*?)\w*-\d+:\w+(?:\s+\w+)*
  • 替换:$1NEW STRING

答案 1 :(得分:1)

您可以这样做:

/(.*?)(?:[A-Z\d-]+:[\w ]+)$/\1New Addition/
                     ^            words and ' ' to end of line
                  ^               literal :
            ^                     character class for OBC-1234 pattern
        ^                         Non capturing group
 ^                                Capture to the LH of description

Demo

如果OBC-1234更具体,则可以执行以下操作:

/(.*?)(?:[A-Z]+-\d+:[\w ]+)$/\1New Addition/

更具体些。

Demo 2