#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-адрес, который появляется в выражении.
Я часто использую тестовые сайты регулярных выражений для устранения неполадок с регулярными выражениями.