Сопоставление повторяющихся цифр из числа

#regex

#регулярное выражение

Вопрос:

Мне нужно регулярное выражение для проверки чисел на наличие повторяющихся цифр.

Все числа содержат 12 цифр, первые 6 цифр нам нужно пропустить, поэтому мне нужно найти числа, в которых повторяется каждая вторая цифра из 7.

Вот так 964632X5X7X3 X — повторяющиеся цифры

Результаты

 502632959793 - TRUE
125632757773 - TRUE
475632353773 - FALSE
  

Я попробовал что-то подобное для каждой цифры от 0 до 9:

 d{6}([9]d[9]d[9]d)$
  

Это не сработало.

Комментарии:

1. Я бы использовал : ^d{6}(d)d1d1d$

2. d{6}([9]d[9]d[9]d)$ Я попробовал что-то подобное для каждой цифры от 0 до 9, но это не сработало. Я новичок в регулярном выражении

Ответ №1:

Вы можете использовать

 ^d{6}(?=(d))(?:1d){3}$
  

Смотрите демонстрацию регулярных выражений. Вы даже можете реорганизовать это регулярное выражение позже, если вам нужно учесть любое количество повторений от x до y после первых шести цифр (просто замените {3} на требуемый квантор {x} , {x,} или {x,y} с требуемыми пороговыми значениями).

Подробности регулярного выражения

  • ^ — начало строки
  • d{6} — первые шесть цифр
  • (?=(d)) — позитивный прогноз, который включает седьмую цифру в группу 1
  • (?:1d){3} — три вхождения цифры, записанной в группе 1, и любая отдельная цифра
  • $ — конец строки