WPS正则结果与Excel结果不一致,是否为Bug?

龙逸凡
龙逸凡

创作者俱乐部成员

需求:

使用正则表达式,每四位后插入一空格。使用正则(?<=\G.{4})来定位。

一、Excel

1、公式:

=REGEXREPLACE(B2,"(?<=\G.{4})"," ")

2、结果:

正确!

二、使用WPS

1、公式:

=REGEXREPLACE(B2,"(?<=\G.{4})"," ")

2、结果:

错误!

同样的数据,同样的正则,Excel与WPS得到的结果不一致。

不知道是不是WPS的BUG?????

说明:

\G 是锚点,用于匹配上一次匹配结束的位置。

它让本次匹配从上一次匹配结束的位置继续进行。

重庆
浏览 121
收藏
2
分享
2 +1
8
+1
全部评论 8
 
WPS社区小助理
WPS社区小助理

@金山办公

您好,很抱歉个您带来不便。正如大佬们的分析,主要是引擎差异导致,不同引擎语法效果有区别。 关于这个问题小助理已记录并反馈技术大佬评估看未来如何优化的,感谢亲亲的反馈
· 广东省
回复
龙逸凡
龙逸凡

创作者俱乐部成员

好的,谢谢
· 重庆
回复
 
Tam Kingsley
Tam Kingsley

创作者俱乐部成员

试了下TRIM(REGEXP(A1,"(.{4})",2,"\1 ")),这样写就可以每4个字符隔一个空格
· 广东省
1
回复
 
Tam Kingsley
Tam Kingsley

创作者俱乐部成员

看了下是PCRE2和PCRE两种不同的规则导致的原因,如下图所示~
· 广东省
1
回复
龙逸凡
龙逸凡

创作者俱乐部成员

明白了,感谢指教。 你很有钻研精神。
· 重庆
回复
 
wils
wils

创作者俱乐部成员

厉害,是没见过的用法 以前猜测wps的正则类似pcre,用perl测试了一下,结果是正确的 正则一般不会出错,说不定是wps的替换。。。
· 海南省
回复
wils
wils

创作者俱乐部成员

等等。。。 使用pcre2的其他工具,得出和wps一样的结果
· 广东省
1
回复