REGEX检查字符串中是否有数字重复

REGEX检查字符串中是否有数字重复,regex,regex-lookarounds,Regex,Regex Lookarounds,我需要一个正则表达式来检查一个数字是否在一个9个字符的字符串中重复,知道这些字符可能是不确定数量的点 例子 "........." - false - no numbers repeated "123456789" - false - no numbers repeated "1.2.3.4.5" - false - no numbers repeated "1...3...5" - false - no numbe

我需要一个正则表达式来检查一个数字是否在一个9个字符的字符串中重复,知道这些字符可能是不确定数量的点

例子

"........." - false - no numbers repeated
"123456789" - false - no numbers repeated
"1.2.3.4.5" - false - no numbers repeated
"1...3...5" - false - no numbers repeated
"112345678" - true - number 1 is repeated
"1......1." - true - number 1 is repeated
"11244.56." - true - number 1 and 4 are repeated
"234.5.6.4" - true - number 4 is repeated
我在互联网上找到了这个,它很接近我所需要的

\b(?:([1-9])(?![1-9]*\1)){1,9}\b
但是我不知道如何使它不考虑点。
非常感谢:)

此regexp将允许重复数字之间的任何字符:

(\d)。*\1

\d
匹配一个数字,
()
将其放入捕获组1,而反向引用
\1
匹配同一个数字。

您可以使用

^(?=.{9}$)(?=.*(\d)。*\1)(?:\..*\d){1,9}\*$
或者,如果您只需要允许从
1
9
的数字:

^(?=.{9}$)(?=.*([1-9]).*\1)(?:\.[1-9]){1,9}\*$

详情:

  • ^
    -字符串的开头
  • (?=.{9}$)
    -字符串应包含9个字符
  • (?=.*(\d)。*\1)
    -必须有一个重复的数字
  • (?:\.\d){1,9}\.
    -1到9次出现任何零或多个点,后跟一个数字,然后出现任何零或多个点
  • $
    -字符串结束

摆脱
\b