替换字符串,从最后一次出现的字符开始

replace a string, starting last occurrence of of a character

在此字符串中:

a=b&c=blablabla_[OO]

我正在尝试替换“=”和“[OO]”之间的所有内容

我试过:

/(=.+?)_\[OO\]

但这取代了从检测到的第一个“=”符号开始而不是最后一个(最接近 [OO])。

我怎样才能做到这一点?

谢谢!

您可以使用 2 个捕获组或 lookarounds 结合 negated character class [^=]+ 匹配 1+ 次除等号以外的任何字符:

(=)[^=]+(\[OO\])

Regex demo

在替换中使用 2 个捕获组 REPLACEMENT


带环顾四周(如果支持)

(?<==)[^=]+(?=\[OO\])

Regex demo

不是匹配所有字符,而是不匹配 = 字符,如下所示:

/(=[^=]+?)_[OO]