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.
谢谢
试试这个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]);
}