Regex, чтобы найти повторяющиеся числа - PullRequest
27 голосов
/ 28 июня 2011

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

Например: 11111111, 2222, 99999999999 и т. Д.

Должно быть подтверждено для любой длины.

Ответы [ 5 ]

47 голосов
/ 28 июня 2011
\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
10 голосов
/ 28 июня 2011

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

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

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

5 голосов
/ 28 июня 2011

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

(\d)\1+

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

2 голосов
/ 02 июля 2018

Я использовал это выражение, чтобы дать мне все телефонные номера с одинаковыми цифрами.

По сути, это означает дать 9 повторений первоначального первого повторения данного числа, что приводит к 10 одинаковым числам в строке.

([0-9]) \1 {9}

0 голосов
/ 08 февраля 2018

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

regexr.com

этот код просто означает любой шаблон внутри [].([внутри шаблона]) \1 перейдет к тому же, что и внутри шаблона, вперед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...