Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 重复数字的正则表达式_Regex - Fatal编程技术网

Regex 重复数字的正则表达式

Regex 重复数字的正则表达式,regex,Regex,我有这样的数字 {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},{ 我想找到像{1,2,8}这样的重复项 我不熟悉正则表达式,创建了一个简单的正则表达式,但我不知道如何使用边界 -?([0-9]),-?([0-9]),-?([0-9]) 如果它们不是相邻的,情况会变得相当复杂,但也许 ({\d+(

我有这样的数字

{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},{

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

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

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

如果它们不是相邻的,情况会变得相当复杂,但也许

({\d+(?:,\d+)*,\d+}),\1
也许可以调查一下附近的人

我想,我们可以用积极的前瞻:

({\d+(?:,\d+)*,\d+})(?=.*(\1))
并以某种方式捕捉到了复制品


如果您希望简化/更新/探索表达式,将在的右上面板中进行解释。如果您感兴趣,可以查看匹配步骤或在中修改它们。调试器演示了如何逐步使用一些示例输入字符串并执行匹配过程


正则表达式电路 可视化正则表达式:


这些事情最好使用数学运算符来完成,但如果您对使用正则表达式感兴趣,可以使用这个正则表达式来完成

({(?:-?\d+(?:,-?\d+)*)})(?=.*\1)
这里的想法是捕获一个组中的模式,并使用前瞻来检查group1中捕获的文本是否在字符串的前面


大多数语言都有一个regExp函数,可以将所有匹配项返回到一个数组中。在Javascript中,您可以将regExp传递到
String.match()
,然后使用
Array.reduce()
过滤出唯一值:

const str=“{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,2,-1,2},{9,4,2},{;
常量regExp=/{-?[0-9],-?[0-9],-?[0-9]}/g;
常数dup=[];
str.match(regExp).reduce((newArr,cur)=>{
if(新增包括(当前)){
重复推送(cur);
返回newArr;
}否则{
返回新的到达时间(当前);
}
}, []);

控制台日志(dup)为什么不反序列化为json并用您喜欢的语言编写一些比较代码?谢谢,这是可能的,但我非常想知道如何使用regext。这不是
regex
的工作。这是可以做到的,但是还有其他更容易写和理解的方法。