在C#中,给出一个如下格式的字符串:
http://10.242.33.210:5000
ftp://52.42.12.52:7000/
如何利用正则表达式仅检索IP(应丢弃端口)
对于上面两个例子,正则表达式应匹配10.242.33.210和52.42.12.52
答案 0 :(得分:3)
答案 1 :(得分:2)
非常简单,实际上:
[\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
答案 2 :(得分:1)
\b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\b
相同但更短(来自zerkms):
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b