如何编写正则表达式从URL中提取FlickR图像ID?

时间:2009-10-13 03:31:46

标签: asp.net regex flickr

我希望做两件事,我希望以美丽的方式做到这一点。我正在开发一个项目,允许用户只需输入他们的flickr图像URL即可上传flickr照片。例如:http://www.flickr.com/photos/xdjio/226228060/

我需要:

  • 确保它是符合以下格式的网址:http://www.flickr.com/photos/[0]/[1]/

  • 提取以下部分:http://www.flickr.com/photos/xdjio/[0]/

现在我可以非常轻松地编写一些字符串方法来完成上述操作,但我认为它会很混乱并且喜欢学习如何在正则表达式中完成这些操作。虽然不是正则表达式忍者,但我目前无法做到这一点。

2 个答案:

答案 0 :(得分:4)

如果输入字符串的URL与您提供的URL一样,则会提取任意用户的图像ID:

string input = "http://www.flickr.com/photos/xdjio/226228060/";
Match match = Regex.Match(input, "photos/[^/]+/(?<img>[0-9]+)", RegexOptions.IgnoreCase | RegexOptions.SingleLine);
if(match.Success)
{
    string imageID = match.Groups["img"].Value;
}

将其分解,我们正在搜索“photos /”后跟一个或多个不是'/'的字符,后跟一个/,后跟一个或多个数字字符。我们还将数字段放入名为“img”的命名组中。

答案 1 :(得分:0)

我想补充一点,当使用javascript asp.net验证器时,它不支持分组名称。

在这种情况下使用的正则表达式将是:

photos/[^/]+/([0-9]+)

认为有人可能会发现这个有用的