在类似的字符串中
16,17,22,22,22,22,20,16
我试图在不排序的情况下匹配重复的数字。
我尝试了(d+)1+
和许多变体,但都不起作用。
提前感谢您的帮助。
您可以使用
console.log("16,17,22,22,22,22,20,16".match(
/b(d+)b(?:(?<=b1b.*b1b)|(?=.*b1b))/g
))
查看regex演示
详细信息
b(d+)b
-捕获到第1组中的一个或多个数字,用单词边界括起来(?:(?<=b1b.*b1b)|(?=.*b1b))
-与以下两种模式之一匹配的非捕获组:(?<=b1b.*b1b)
-紧跟在前面的位置与第1组中捕获的值相同(作为一个完整单词(,然后是除换行符之外的任何零个或多个字符,再加上第1组的值(第二个值刚好与b(d+)b
匹配,因为查找位于第1组之后(|
-或(?=.*b1b)
-一个位置,后面紧跟任何零个或多个字符,而不是尽可能多的换行字符,然后将第1组值作为一个完整的单词