gpt4 book ai didi

regex - 匹配所有出现 n 次的元素

转载 作者:行者123 更新时间:2023-12-05 00:43:03 27 4
gpt4 key购买 nike

我想选择精确出现 n 次的相同元素。

匹配此字符串中精确重复 3 次的字母:"aaaaabbbcccccccccdddee"

这应该返回 "bbb""ddd"

如果我定义我应该匹配的内容,如“b{3}”或“d{3}”,这会更容易,但我想匹配所有元素

我试过了,最接近的是这个正则表达式:(.)\1{2}(?!\1)返回 "aaa""bbb""ccc""ddd"

由于“非固定宽度”(?<!\1)

,我不能在后面添加负面的lookbehind

最佳答案

一种可能性是使用一个正则表达式来查找一个不跟随其自身(或行首)的字符,然后是三个相同的字符,然后是另一个与后三个不同的字符,即

(?:(.)(?!\1)|^)((.)\3{2})(?!\3)

Demo on regex101

匹配在第 2 组中被捕获。但问题是它在匹配之前吸收了一个字符,因此找不到相邻的匹配:如演示中所示,它只匹配 aaa , ccceeeaaabbbcccdddeee.

这个问题可以通过将整个正则表达式设为前瞻来解决,该技术允许捕获重叠匹配,如 this question 中所述.所以:

(?=(?:(.)(?!\1)|^)((.)\3{2})(?!\3))

同样,比赛在第 2 组中被捕获。

Demo on regex101

关于regex - 匹配所有出现 n 次的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71656063/

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