在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