Почему неправильно отрабатывает регулярное выражение для Java Pattern?

Имеется Регулярное выражение

Pattern pattern = Pattern.compile("^(7)+(701|702|775|778|705|777|771|776|707|747|700|708)+(\\d{7})$");
        Matcher matcher = pattern.matcher(value);


т.е. по моему логике (вероятно я не правильно думаю)

первое вхождение 7 это первая цифра от начала строки, Далее необходимо найти 1 из списка заготовленных значений, и после 7 любых значений.

В данном случае значение: 77771234567 отработает правильно, но если добавить еще одну цифру, то в группу 1 попадет значение 7(2-й символ) и во второе 771

т.е. получается что 1-й символ опускается, может кто объяснить как это можно исправить
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
hahenty
@hahenty
('•')
Плюсы надо убрать. Из за них регулярка может посчитать правильной длину строки больше одиннадцати символов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы