c#试图从具有.com,.net和.org扩展名的网页中提取url

本文关键字:扩展名 org 网页 url 提取 net com | 更新日期: 2023-09-27 18:11:14

我试图提取。com,。net和。org链接从一个网页,包含这些不同的数字。我只是学习关于正则表达式使用c#,但我不确定如何设置一个模式,寻找只是。com,。net和。org扩展。然后打印带有这些结尾的url。任何建议或网站,你可以指导我帮助我将是伟大的。

这是我目前得到的

WebClient client = new WebClient();
string extPattern = @"?.com|?.net|?.org;  //but i think i am not doing this right. 
string source = client.DounloadString(url) //read the Url and store the pages. 
//then not sure what to do. 

谢谢

c#试图从具有.com,.net和.org扩展名的网页中提取url

试试这个regex:

string extPattern = @"(http://)?[a-z0-9'-'.]+('.com|'.net|'.org)";

无论如何,这不是实现你的目标的完美方式,因为url是非常不同的(可能有http或https,带或不带www)。

这部分取决于您期望输入字符串的格式。下面的模式假设每个URL都在单独的行上:

(. + ' com + ' . net | |。+ ' .org) ' s

这可能是您需要的,也可能不是,这取决于输入格式。如果你需要更有用的信息,你需要提供更多的信息。

一些不错的在线资源用于测试。net正则表达式:

http://gskinner.com/RegExr/

http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

或者问题是你不知道如何使用。net正则表达式类?这个网站上有很多问题可以帮到你。

如果你只是在寻找一个匹配URL的正则表达式,那么你会在这里找到一个:

http://regexlib.com/DisplayPatterns.aspx?cattabindex=1& categoryId = 2

将下载的数据转换为字符串,并像这样使用正则表达式

Regex myRegex = new Regex(@"(http://)?[a-z0-9'-]+('.com|'.net|'.org)");
MatchCollection collection = myRegex.Matches(downloadedData);
for (int i = 0; i < collection.Count; i++)
{
    Debug.WriteLine(collection[0]);
}