RegEx用于匹配除两个单词之间的文本以外的所有内容

时间:2019-05-11 15:39:22

标签: regex regex-lookarounds regex-group regex-greedy klipfolio

我有一条短信:

“敏捷的棕色狐狸跳过了懒狗”

我需要匹配一个单词和该单词之后的第一个字母之间的文本以外的所有内容,如下所示(在这种情况下,介于棕色和第一个“ l”之间):

“快速的棕色懒狗”

我尝试了一些可能的解决方案,但是我手中最接近的匹配恰恰相反:

(?<=brown ).*?(?=l)
“狐狸匹配的

跳过了

编辑:

我正在使用Klipfolio工具,确切的文本是这样的:

["String1: value1","String2: value2","String3: value3"]

我想匹配除value1以外的所有内容,并将其替换为空字符串。

我正在使用的功能是SUBSTITUTE_REGEX

2 个答案:

答案 0 :(得分:2)

如上所述,最简单的方法是进行字符串替换。

要做相反的事情会涉及到很多事情,像这样:

找到(.*?brown ).*?(l.*)|(.+)
替换$1$2$3

https://regex101.com/r/x8QW6r/1

答案 1 :(得分:0)

您可以只使用原始模式,然后将匹配的部分替换为空字符串""

执行此操作的另一种方法是创建两个匹配组,然后可以将其组合以获得所需的结果:

(.*brown )(?:[^l]*)(.*)
Full match  0-43   The quick brown fox jumps over the lazy dog
Group 1.    0-16   The quick brown 
Group 2.    35-43  lazy dog

Demo