Как написать регулярное выражение для извлечения идентификатора изображения FlickR из URL? - PullRequest
1 голос
/ 13 октября 2009

Я хочу сделать две вещи, и я хочу сделать их красивым способом. Я работаю над проектом, который позволяет пользователям загружать фотографии flickr, просто вводя URL-адрес своего изображения flickr. Пример: http://www.flickr.com/photos/xdjio/226228060/

Мне нужно:

Теперь я мог бы очень легко написать несколько строковых методов для выполнения вышеизложенного, но я думаю, что это было бы беспорядочно, и мне нравится учиться делать эти вещи в регулярных выражениях. Хотя я и не являюсь регулярным ниндзя, в настоящее время я не могу сделать это.

Ответы [ 2 ]

4 голосов
/ 13 октября 2009

При наличии входной строки с URL-адресом, подобным указанному вами, будет извлечен идентификатор изображения для любого произвольного пользователя:

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».

0 голосов
/ 14 октября 2009

думал, что добавлю к этому, что при использовании валидатора javascript asp.net он не поддерживает имя группировки.

регулярное выражение для использования в этой ситуации будет:

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

думал, что кто-то может найти это полезным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...