猿问

正则表达式匹配重复数字而不排序

在这样的字符串中

16,17,22,22,22,22,20,16

我试图在不排序的情况下匹配重复的数字。

我尝试了(\d+)\1+很多变体,但它不起作用。

预先感谢您的帮助。


ibeautiful
浏览 84回答 1
1回答

人到中年有点甜

您可以使用console.log("16,17,22,22,22,22,20,16".match(&nbsp; &nbsp; &nbsp;/\b(\d+)\b(?:(?<=\b\1\b.*\b\1\b)|(?=.*\b\1\b))/g))请参阅正则表达式演示细节\b(\d+)\b- 捕获到第 1 组中的一个或多个数字,这些数字用单词边界括起来(?:(?<=\b\1\b.*\b\1\b)|(?=.*\b\1\b))- 匹配两种模式之一的非捕获组:(?<=\b\1\b.*\b\1\b)- 一个位置紧接第 1 组中捕获的相同值(作为一个完整的单词),然后是除换行符之外的任何零个或多个字符,然后是第 1 组中的值(第二个仅匹配\b(\d+)\b自后视位于第 1 组之后)|- 或者(?=.*\b\1\b)- 一个位置紧跟任何零个或多个字符,而不是尽可能多的换行字符,然后是整个单词的第 1 组值。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答