Почему неправильно отрабатывает регулярное выражение для 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
('•')
Плюсы надо убрать. Из за них регулярка может посчитать правильной длину строки больше одиннадцати символов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽