Java Regex Получить IP - PullRequest
1 голос
/ 10 мая 2011

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

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

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

Ответы [ 3 ]

3 голосов
/ 10 мая 2011

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

(?<=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 голосов
/ 10 мая 2011

использование (([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 enter image description here

1 голос
/ 10 мая 2011

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

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

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

...