我怎麼能匹配警告以下,其中IP地址可以改變:匹配已知主機在正則表達式
Warning: Permanently added '100.124.61.161' (RSA) to the list of known hosts.
提前感謝!
我怎麼能匹配警告以下,其中IP地址可以改變:匹配已知主機在正則表達式
Warning: Permanently added '100.124.61.161' (RSA) to the list of known hosts.
提前感謝!
您可以嘗試下面的代碼,更改字符串以僅限制特定文本。
if($string =~ m/Warning: Permanently added '(.*?)' \(RSA\) to the list of known hosts\./)
{
print "Match Successful, IP address: $1\n";
}
else
{
print "String did not match\n";
}
如果只能有一個IP地址,這可以。 OP甚至不關心捕獲IP。你不需要轉義冒號':',它在正則表達式中沒有特殊含義。 – simbabque
爲IPv4的(沒有端口)的一般的正則表達式。將
(?<!\d)(?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(?:\.(?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}(?!\d)
解釋
(?<! \d)
(?:
\d # 0 - 9
| [1-9] \d # 10 - 99
| 1 \d{2} # 100 - 199
| 2 [0-4] \d # 200 - 249
| 25 [0-5] # 250 - 255
)
(?:
\.
(?:
\d
| [1-9] \d
| 1 \d{2}
| 2 [0-4] \d
| 25 [0-5]
)
){3}
(?! \d)
我不確定你必須擔心不匹配256.256.256.256 – stevesliva
@stevesliva - 是嗎?即使這個世界只包含數字和點而已? – sln
「我可以如何匹配以下IP地址可以更改的地方。」這個複雜的正則表達式很好,解釋也很好 - 如果你擔心輸入不是IP。但它似乎並沒有完全回答這個問題。 – stevesliva
利用/ d,以匹配數字。使用/ d +匹配1或更多。 – stevesliva
用一個有效的IP正則表達式交換'100.124.61.161'。 http://stackoverflow.com/questions/5284147/validating-ipv4-addresses-with-regexp – chris85
@stevesliva我相信你的意思是'\ d'和'\ d +';) – stevieb