ibeautiful
2023-06-15 09:38:19
在這樣的字符串中16,17,22,22,22,22,20,16我試圖在不排序的情況下匹配重復(fù)的數(shù)字。我嘗試了(\d+)\1+很多變體,但它不起作用。預(yù)先感謝您的幫助。
1 回答
人到中年有點(diǎn)甜
TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用
console.log("16,17,22,22,22,22,20,16".match(
/\b(\d+)\b(?:(?<=\b\1\b.*\b\1\b)|(?=.*\b\1\b))/g
))
請參閱正則表達(dá)式演示
細(xì)節(jié)
\b(\d+)\b- 捕獲到第 1 組中的一個(gè)或多個(gè)數(shù)字,這些數(shù)字用單詞邊界括起來(?:(?<=\b\1\b.*\b\1\b)|(?=.*\b\1\b))- 匹配兩種模式之一的非捕獲組:(?<=\b\1\b.*\b\1\b)- 一個(gè)位置緊接第 1 組中捕獲的相同值(作為一個(gè)完整的單詞),然后是除換行符之外的任何零個(gè)或多個(gè)字符,然后是第 1 組中的值(第二個(gè)僅匹配\b(\d+)\b自后視位于第 1 組之后)|- 或者(?=.*\b\1\b)- 一個(gè)位置緊跟任何零個(gè)或多個(gè)字符,而不是盡可能多的換行字符,然后是整個(gè)單詞的第 1 組值。
添加回答
舉報(bào)
0/150
提交
取消
