Регулярное выражение для XXYXX - PullRequest
0 голосов
/ 13 февраля 2012

Я ищу регулярное выражение для Java, чтобы найти цифры, структурированные так:

XXYXX or XYYYX

Таким образом, результаты могут быть 66266 или 71117

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 13 февраля 2012

Попробуйте это регулярное выражение:

input.matches("((\\d)\\1\\d\\1\\1|(\\d)(\\d)\\3\\3\\2)");

Он использует обратные ссылки для обработки повторяющихся чисел и регулярных выражений "или (A|B)

Обратите внимание, что это регулярное выражение будет соответствовать 99999, что допустимо по вашему определению (т. Е. X и Y могут быть одной цифрой).

Также обратите внимание на экранированные косые черты \\ для указания одиночного обратного слеша в регулярном выражении в строке Java.

0 голосов
/ 13 февраля 2012

Я бы предложил (\d)\1\d\1\1 для первого случая и (\d)(\d)\2\2\1 для второго.Смешивание их обоих с группами без захвата:

(?:(\d)\1\d\1\1)|(?:(\d)(\d)\2\2\1)

Не знаю, как Java играет с Regex.

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