Задать вопрос
FreeTibet
@FreeTibet
dharma supplier

Регулярные выражения, максимальная длина строки

Есть регулярное выражение: "(\d+\.)+", которое описывает строки вида 111.223.123.12.
Каким образом можно добавить проверку на то, что общая длина строки, допустим, не превышает двадцать символов.

Спасибо.
  • Вопрос задан
  • 25181 просмотр
Подписаться 2 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 7
@bioroot
А есть какая-то веская причина не проверять условие вне регулярного выражения? Я с ходу не могу придумать адекватного способа это сделать без look-behind'ов. Собственно и с ними страшновато.

Может лучше опишите задачу целиком? По опыту когда ко мне кто-то обращается с вопросом «как построить регулярку» в 90% случаев исходная постановка задачи помогает найти более адекватное решение, хотя часто и через другую регулярку.
Ответ написан
@nes
antoo
@antoo
(\d+\.){1,20}
а вот так?
Ответ написан
taliban
@taliban
php программист
Это у Вас айпи?
Ответ написан
@kuber
Ваша строка 111.223.123.12 сильно похожа на ip адрес. Это он? Или просто пример такой?
Ответ написан
conf
@conf
Ruby developer
А почему это обязательно надо делать регуляркой? Нельзя просто проверить длину строки без регулярки?
Ответ написан
Mithgol
@Mithgol
^(?=.{0,20}$)(\d+\.)+$
Ответ написан
Ваш ответ на вопрос

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

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