Подтвердить что ты не робот

Regex найти повторяющиеся числа

Может ли кто-нибудь помочь мне или направить меня на создание регулярного выражения для проверки повторяющихся номеров

например: 11111111, 2222, 99999999999 и т.д.

Он должен проверяться на любую длину.

4b9b3361

Ответ 1

\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 и end-line вместо \b:

^(\d)\1+$

Изменить: как совместить точное противоположное, i. е. номер, где не все цифры одинаковы (кроме случаев, когда все число является просто цифрой):

^(\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

Ответ 2

Чтобы соответствовать количеству повторений одной цифры, вы можете написать ([0-9])\1*.

Это соответствует [0-9] в группу, а затем соответствует 0 или более повторениям (\1) этой группы.

Вы можете написать \1+ для соответствия одному или нескольким повторениям.

Ответ 3

Использовать обратную ссылку:

(\d)\1+

Возможно, вы хотите использовать какие-то анкеры ^(\d)\1+$ или \b(\d)\1+\b