在C#中,鑑於格式的字符串是這樣的:正則表達式匹配IP
http://10.242.33.210:5000
ftp://52.42.12.52:7000/
我如何使用正則表達式來僅檢索IP(端口應丟棄)
對於上述兩個例子,正則表達式應該匹配10.242.33.210和52.42.12.52
在C#中,鑑於格式的字符串是這樣的:正則表達式匹配IP
http://10.242.33.210:5000
ftp://52.42.12.52:7000/
我如何使用正則表達式來僅檢索IP(端口應丟棄)
對於上述兩個例子,正則表達式應該匹配10.242.33.210和52.42.12.52
很簡單,實際上是:
[\d.]+
無線會匹配一連串的數字和點。在你的情況下,沒有端口的IP地址。通過設法符合IP的外觀(0到255之間的數字,或點之間的一到三個數字),你可以使它更加複雜,但如果你所期望的只是像上面那樣輸入,那麼這應該沒問題。
快速PowerShell的測試:
PS> $tests = 'http://10.242.33.210:5000','ftp://52.42.12.52:7000/'
PS> $tests | %{ $_ -match '[\d.]+' | Out-Null; $Matches}
Name Value
---- -----
0 10.242.33.210
0 52.42.12.52
對我來說,這匹配端口,以及... –
那麼,一個*第二個*匹配將匹配端口,是的。但字符串中的第一個匹配應始終是IP。見上面的例子。 – Joey
可能的dupl [對於IP地址的正則表達式](http://stackoverflow.com/questions/4890789/regex-for-an-ip-address) – tripleee