我有以下正则表达式匹配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?
答案 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
,其中包含正则表达式的所有匹配项。