Я пытаюсь получить IP-адрес из строки. Я определенно не первый, кто задал этот вопрос, но я не мог найти ответ, который бы точно делал то, что нам нужно.Regex для извлечения IP-адреса из строки
Если в строке есть какая-либо комбинация xxx.xxx.xxx.xxx, независимо от текста вокруг нее, она должна извлекать это число с точками между ними. Поэтому его можно использовать с Test-Connection
.
Я не пытаюсь определить, действителен ли IP-адрес, но я пытаюсь получить IP-адрес из строки. Даже если это недействительно, например, 900.999.800.254.
Пример:
Input Expected result
----- ---------------
IP_10.57.50.91 10.57.50.91
10.57.50.73 10.57.50.73
10.58.4.37 IP 10.58.4.37
ip 10.63.1.22 10.63.1.22
BELPRLIXH300 $False
ip 10.63 $False
я пытался до сих пор регулярных выражений предположил, here, но они не дают нам IP-адрес в качестве вывода в переменной $Matches
.
Спасибо за предложение, но если я пытаюсь '-match 'IP_10.10.22.45'«^ (([0-9] | [1-9] [0-9] | 1 [0 -9] {2} | 2 [0-4] [0-9] | 25 [0-5]) \) {3} ([0-9] |. [1-9] [0-9] | 1 [0-9] {2} | 2 [0-4] [0-9] | 25 [0-5]) $ "' он не работает и дает мне $ False вместо числа. – DarkLite1
Я успешно тестирую каждый IP-адрес с помощью функции ExtractValidIpAddress из вашей ссылки. –
Да, он дает '$ True' или' $ False', но не извлекает номер, который будет использоваться с 'Test-Connection'. – DarkLite1