如何使用C#正则表达式提取代理ip地址



我想使用C#正则表达式从字符串中提取代理地址(主机和端口)
字符串如下:

<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>

不可能编写正则表达式,它将从任何标记中捕获代理信息。例如,一些网站可以将端口号"烘焙"到图片中,因此您必须单独处理每种标记。

通常,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敏捷包。

最新更新