正则表达式匹配IP:端口

时间:2012-07-11 12:52:05

标签: c# regex

我有以下正则表达式匹配Ip:Port表单html代码,但有些原因我只是返回第一个匹配,然后停止。

我的代码:

       Match m = Regex.Match(_theHtmlCode, @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,8}\b", RegexOptions.IgnoreCase);

       if (m.Success)
       {
           if(m.Groups[0].Value != "")
           {
               resultsFound.Add(m.Groups[0].Value);
           }

       }

我有什么想法可以将所有匹配添加到resultsFound?

2 个答案:

答案 0 :(得分:2)

var m = Regex.Matches(_theHtmlCode, @"\b(\d{1,3}\.){3}\d{1,3}\:\d{1,8}\b", RegexOptions.IgnoreCase); 并且这个正则表达式可能出错了ip,这只匹配真正的ip:((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):\d+

答案 1 :(得分:0)

您需要使用Regex.Matches方法而非Regex.Match方法。这将返回MatchCollection而不是单个Match,其中包含正则表达式的所有匹配项。