1

我一直在 MSDN 上阅读有关 .NET 正则表达式的信息。我对这些可能性感到震惊,无言以对。我不知道提取下面 URL 的模式应该是什么。有.NET正则表达式知识的人可以帮忙。谢谢。

这是我尝试在其上使用模式的 URL 示例:

img src="http://distilleryimage4.s3.amazonaws.com/a0a2f13eda3c11e2b7ba22000aaa2161_6.jpg

这些 URL 的唯一常量是 'img src="http://'、'.com'、另一个 '/' 和 '_6.jpg'。中间的其他字符都是字母数字并包含小数 '.' .

4

2 回答 2

4

不要使用正则表达式来解析 URL-s,System.Uri而是使用类。它具有要读取 URL 的每个部分的属性,并且会正确解析它们。

如果您开始处理各种不同的可能 URL,正则表达式可能会变得非常复杂,并且您将很难测试所有不同的可能性。

例如:

string sUrl = "http://distilleryimage4.s3.amazonaws.com/a0...a2161_6.jpg";
Uri oUrl;

if ( Uri.TryCreate ( sUrl, UriKind.RelativeOrAbsolute, out oUrl ) )
{
    // TODO use properties of oUrl to inspect the URL
}
于 2013-06-22T01:17:18.727 回答
0

你可以试试

var regex = new Regex("http://[\w\d.]*com/[\w\d]*_6.jpg");

用法:

if (regex.IsMatch(url))
{
    //your processing here.
}

不幸的是,没有太多可做的,更多的例子和你需要的 url 会有所帮助。

于 2013-06-22T01:14:22.393 回答