Может ли кто-нибудь помочь мне или направить меня на создание регулярного выражения для проверки повторяющихся номеров
например: 11111111, 2222, 99999999999 и т.д.
Он должен проверяться на любую длину.
Может ли кто-нибудь помочь мне или направить меня на создание регулярного выражения для проверки повторяющихся номеров
например: 11111111, 2222, 99999999999 и т.д.
Он должен проверяться на любую длину.
\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
Чтобы соответствовать количеству повторений одной цифры, вы можете написать ([0-9])\1*
.
Это соответствует [0-9]
в группу, а затем соответствует 0 или более повторениям (\1
) этой группы.
Вы можете написать \1+
для соответствия одному или нескольким повторениям.
Использовать обратную ссылку:
(\d)\1+
Возможно, вы хотите использовать какие-то анкеры ^(\d)\1+$
или \b(\d)\1+\b