regex to find numbers with unique digits

前端 未结 5 770
忘了有多久
忘了有多久 2020-12-10 13:19

I want to find 10 digit numbers with no repeat digits, for example:

1123456789 //fail, there are two 1\'s
6758951230 //fail, there are two 5\'s
6789012345 //         


        
5条回答
  •  無奈伤痛
    2020-12-10 14:15

    This regex works:

    ^(?!.*(.).*\1)\d{10}$
    

    This uses an anchored negative look ahead with a back reference to assert that there are no repeating characters.

    See a live demo working with your examples.

    In java:

    if (str.matches("^(?!.*(.).*\\1)\\d{10}"))
        // number passes
    

提交回复
热议问题