Задать вопрос

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

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

Похожие вопросы
02 февр. 2025, в 10:45
1000 руб./за проект
02 февр. 2025, в 10:19
7000 руб./за проект
02 февр. 2025, в 08:12
2500 руб./за проект