\b(\d)\1+\b
Объяснение:
\b # match word boundary
(\d) # match digit remember it
\1+ # match one or more instances of the previously matched digit
\b # match word boundary
Если 1
также должно быть допустимым совпадением (ноль повторений), используйте *
вместо +
.
Если вы также хотите разрешить более длинные повторы (123123123
), используйте
\b(\d+)\1+\b
Если регулярное выражение следует применять ко всей строке (в отличие от поиска "чисел повторов в более длинной строке), используйте start- и якоря в конце строки вместо \b
:
^(\d)\1+$
Редактировать: Как найти точное противоположное, то есть число, где не все цифры одинаковы (кроме случаев, когда все число простоцифра):
^(\d)(?!\1+$)\d*$
^ # Start of string
(\d) # Match a digit
(?! # Assert that the following doesn't match:
\1+ # one or more repetitions of the previously matched digit
$ # until the end of the string
) # End of lookahead assertion
\d* # Match zero or more digits
$ # until the end of the string