выборка регулярных выражений Java ip

#java #regex #ip

#java #регулярное выражение #ip

Вопрос:

Как я могу получить, 192.168.1.101 используя регулярное выражение в java в следующей строке, однако, Bcast может присутствовать или отсутствовать

 '      inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0'
  

с начальным пробелом

Ответ №1:

Используйте что-то вроде этого:

 (?<=inet addr:)d{1,3}.d{1,3}.d{1,3}.d{1,3}
  

Я действительно чувствую, что ответ Абхишека Саймона на регулярное выражение является излишним. Вы просто извлекаете, не проверяя, является ли это законным IP-адресом!

Для Bcast используйте что-то вроде приведенного ниже, очевидно:

 (?<=Bcast:)d{1,3}.d{1,3}.d{1,3}.d{1,3}
  

Чтобы получить все IP-адреса, используйте без предварительного просмотра.

Возможно, вам было бы лучше выполнить некоторые строковые операции, такие как разделение на и : , чтобы получить IP-адреса. Я оставляю это на ваше усмотрение.

Ответ №2:

использовать (([1]([0-4][0-9]|[5][0-5])|[0-1]?[0-9]?[0-9])[.]){3}(([2]([0-4][0-9]|[5][0-5])|[0-1]?[0-9]?[0-9]))

Здесь смотрите этот снимок, он также извлекает bcast ip введите описание изображения здесь

Комментарии:

1. спасибо, что это сработало, как я могу получить 192.168.1.255 значение Bcast?

Ответ №3:

Вы можете использовать: ([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})

Первым помеченным выражением будет первый ip-адрес, который появляется в выражении.

Я часто использую тестовые сайты регулярных выражений для устранения неполадок с регулярными выражениями.