Regex匹配重复的数字而不进行排序



在类似的字符串中

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组值作为一个完整的单词

最新更新