gpt4 book ai didi

Javascript 正则表达式消除匹配词之间的困惑

转载 作者:行者123 更新时间:2023-11-30 18:34:23 24 4
gpt4 key购买 nike

我想删除一些相邻单词之间的空格,我该如何实现?

考虑以下几点:

str = "Z =A= =B= =C= =D= Z";
str = str.replace(/(=\w+=)\s+(=\w+=)/g, "$1$2");

我希望 "Z =A==B==C==D= Z"(所有匹配项连接在一起)但我得到的是 "Z =A==B= =C==D= Z"(=B==C= 之间的空格)作为 =A= + =B= 被认为是匹配项,=C= + =D= 也被认为是匹配项,但是 =B= + =C= 不是因为 =B= 已经与 =A= 匹配。

我应该如何改写我的正则表达式来实现它?

更新

我使用的实际匹配是“mime-words”,例如 =?ISO-8859-1?B?dGVzdA==?= 而我用于计算这些的正则表达式是/=\?[^?]+\?[QqBb]\?[^?]+\?=/

例如,我想去除字符串中出现的这些 mime 单词之间的空格

str= "hello =?ISO-8859-1?B?dGVzdA==?= =?ISO-8859-1?B?aG93?= =?ISO-8859-1?B?YXJlIHlvdQ==?=?"

应该变成

"hello =?ISO-8859-1?B?dGVzdA==?==?ISO-8859-1?B?aG93?==?ISO-8859-1?B?YXJlIHlvdQ==?=?"

最佳答案

使用积极的前瞻:

str= "hello =?ISO-8859-1?B?dGVzdA==?= =?ISO-8859-1?B?aG93?= =?ISO-8859-1?B?YXJlIHlvdQ==?=?"
res = str.replace(/(=\?[^?]+\?[QqBb]\?[^?]+\?=)\s+(?==\?[^?]+\?[QqBb]\?[^?]+\?=)/g, "$1");

输出:

"hello =?ISO-8859-1?B?dGVzdA==?==?ISO-8859-1?B?aG93?==?ISO-8859-1?B?YXJlIHlvdQ==?=?"

关于Javascript 正则表达式消除匹配词之间的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8713602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com