REGEX检查字符串中是否有数字重复
我需要一个正则表达式来检查一个数字是否在一个9个字符的字符串中重复,知道这些字符可能是不确定数量的点 例子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
"........." - 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)
-1到9次出现任何零或多个点,后跟一个数字,然后出现任何零或多个点(?:\.\d){1,9}\.
-字符串结束$
\b