如何使用C#regex提取代理IP地址

时间:2014-10-09 02:21:09

标签: c# regex ip

我想使用C#regex从字符串中提取代理地址(主机和端口) 字符串如下所示:

<span class="tbBottomLine" style="width:140px;">
            208.31.251.38
        </span>
        <span class="tbBottomLine" style="width:50px;">
                80
        </span>

或者

<tr class="odd">
<td>115.29.247.115</td>
<td>8888</td></tr>

1 个答案:

答案 0 :(得分:0)

编写正则表达式是不可能的,它会从任何标记中捕获代理信息。例如,一些网站可以&#34;烘烤&#34;将端口号放入图片中,因此您必须单独处理每种标记。

通常, html不能也不应该使用RegEx解析

无论如何,这是一个可以处理你们两个输入字符串

的例子
WebProxy[] ProxyArray = Regex.Matches(input, @"(?<ip>\d*\.\d*\.\d*\.\d*).*?>\s*(?<port>\d+)\s*<")
               .Cast<Match>().Select(m => new WebProxy(m.Groups["ip"].Value + ":" + m.Groups["port"].Value)).ToArray();

请记住,页面的整个代码都可以包含会破坏此RegEx的元素。

您可能想看看Html Agility Pack