首页 > 解决方案 > 重复数字的正则表达式

问题描述

我有这样的数字

{1,2,8},{1,2,8},{4,8,-2},{8,4,1},{8,-6,9},{2,6,1}, {6,-5,6},{3,2,9},{8,4,-3},{8,1,9},{7,-5,3},{1,7,3} ,{1,2,-1},{9,4,6},{2,9,-7},{2,1,4}

我想找到像 {1,2,8} 这样的重复项

我是正则表达式的新手并创建了一个简单的,但我不知道如何使用边界

-?([0-9]),-?([0-9]),-?([0-9])

标签: regex

解决方案


如果它们不相邻,它会变得非常复杂,但也许,

({\d+(?:,\d+)*,\d+}),\1

可能可以调查那些相邻的。

正则表达式演示 1

我猜我们可以使用积极的前瞻:

({\d+(?:,\d+)*,\d+})(?=.*(\1))

并以某种方式捕获重复项。

正则表达式演示 2


如果您希望简化/更新/探索表达式,它已在regex101.com的右上角面板中进行了说明。如果您有兴趣,可以在此调试器链接中观看匹配步骤或修改它们。调试器演示了 RegEx 引擎如何逐步使用一些示例输入字符串并执行匹配过程。


正则表达式电路

jex.im可视化正则表达式:

在此处输入图像描述


推荐阅读