我正在寻找正则表达式,它将匹配任何以“http”或“https”开头并包含特定域的 URL。如果域是“stackoverflow.com”,我应该能够从字符串中提取所有域和子域匹配项(仅限 .com,因此不应匹配 .net、.org 等),然后将它们添加到列表中循环遍历所有匹配项。我怎么做?
到目前为止,这是我找到的最佳解决方法(搜索名为“somestring”的字符串并将结果添加到列表“myList”)
Regex r = new Regex(@"(?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*");
Match m = r.Match(somestring);
while (m.Success)
{
if ((m.Value).Contains("stackoverflow.com"))
{
myList.Add(m.Value);
}
m = m.NextMatch();
}