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

Как проверить в регулярном выражение ip адрес на java?

Помогите модернизировать регулярное выражение с таким условием
1.(шаблон xxx.xxx.xxx.xxx) могут указыватся через , это уже сделано (?=^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.)){3}(25[0-5](,|$)|2[0-4][0-9](,|$)|[01]?[0-9][0-9]?(,|$)?))*$)(?=^.{0,8000}[^,\s]$)|^$
2.или с использованием символа-подстановки "*" в последнем октете (шаблон xxx.xxx.xxx.*)
3.или использованием начального и конечного значения диапазона и только в последнем октете (шаблон xxx.xxx.xxx.0-xxx.xxx.xxx.255)
  • Вопрос задан
  • 433 просмотра
Подписаться 3 Простой 6 комментариев
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
ну шо, всем лень?

давай, пЫшЫ что тут не срабатывает

вот блин
так точнее

(^(?:(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(\.(?!$)|$|,|-)){3,4}(\*|(?:(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(\.(?!$)|$|,)){4})?$|^$)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Пробовали метод из зависимости apache.commons.utility?
https://commons.apache.org/proper/commons-validato...
Ответ написан
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Мне кажется что если не решать эту задачу только регулярками а сделать такое.
- проверить что строка состоит из 4х чисел разделенным точками
- проверить что каждое число в диапазоне [2..255] (проверять уже как Integer)
то тогда функция проверки будет простая и наглядная. Это для кейса 10.80.212.195.

Для масок подсети и IPBlocks единая функция проверки все равно безсмысленна - ведь на следующем уровне API
нам надо различать классы { IP, IP+Mask, IPBLock } и нам выгодно сделать 3 функции-предиката. Тем более что классы результата различны.
Ответ написан
Ваш ответ на вопрос

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

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