1

我想做两件事,我希望以一种美丽的方式去做。我正在开发一个项目,该项目允许用户通过简单地输入他们的 flickr 图像 URL 来上传 flickr 照片。前任:http://www.flickr.com/photos/xdjio/226228060/

我需要:

  • 确保它是与以下格式匹配的 URL:http://www.flickr.com/photos/[0]/[1]/

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

现在我可以很容易地编写一些字符串方法来完成上述操作,但我认为这会很麻烦,并且喜欢学习如何在正则表达式中做这些事情。虽然不是正则表达式忍者,但我目前无法执行上述操作。

4

2 回答 2

4

给定一个带有您提供的 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”的命名组中。

于 2009-10-13T03:54:12.107 回答
0

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

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

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

认为有人可能会觉得这很有用

于 2009-10-13T23:37:41.197 回答