gpt4 book ai didi

用于查找 3 次或更多次出现的正则表达式

转载 作者:行者123 更新时间:2023-12-01 07:35:54 25 4
gpt4 key购买 nike

是否可以使用正则表达式匹配一个字符串中超过 1 个字符的任何重复子字符串的 3 次或更多次出现?

例如:

字符串 ABCD ABC AB ACD DE 有子字符串 AB 3 次或更多次。

字母D也出现了3次,但只是一个字符,所以不匹配。

我认为这超出了正则表达式的限制,但万一有什么天才,我会提出同样的问题。

我想做的是通过用一个字符替换重复的字符序列来减少加密查询字符串的大小,但该字符串需要附加(或前置)一个“图例”以指示已减少的内容.

例如:

字符串 ABCD ABC AB ACD DE 将更改为类似 .CD .C 的内容。 ACD DE 并且需要向其中添加一些内容,以便知道 .现在代表 AB。

类似于.AB-

其中 - 充当终止符。因此,替换少于 3 个实际上会增加整个字符串的大小。

我使用的是经典 ASP,但我非常喜欢 C# 解决方案。然后我可以将其粘贴到一个 dll 中并以这种方式使用它。

最佳答案

由于正则表达式在字符串中的贪婪和字符消耗,这里有很多限制。也就是说,您将只能匹配最能满足正则表达式贪婪的一个结果

(..+).*\1.*\1

上面的代码至少捕获了两个字符,如果相同的子串随后出现两次,则匹配。这适用于

ABCD ABC AB ACD DE
ABCD ABCD AB ABCD DE

然而,在后一种情况下,只有“ABCD”被匹配; AB 没有。

除非这对您来说足够好,否则我建议使用正则表达式以外的解决方案,例如按空格拆分单词并检查每个单词。它最终可能也会比正则表达式更有效。

关于用于查找 3 次或更多次出现的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814374/

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