0

我有以下正则表达式来匹配 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 中吗?

4

2 回答 2

5

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+

于 2012-07-11T12:55:56.413 回答
0

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

于 2012-07-11T12:53:43.597 回答