2015-03-18 2 views
2

Итак, я использую API маркетинга Facebook, чтобы вытащить данные объявлений. Данные содержат некоторые URL-адреса изображения.Извлечение изображения с оригинальным размером из Facebook Marketing API

Для например:

https://fbcdn-creative-a.akamaihd.net/hads-ak-xaf1/t45.1600-4/s110x80/10156615_6017073002888_1171145694_n.png

т.е. размер эскиза и который не является моим требованием. После изменения URL-адреса, удалив «s110x80», который является фактически измерением, я получаю именно то, что мне нужно.

Итак, проблема в том, как обращаться с таким случаем в C#, и не нужно, чтобы мы получили «sXxY» для каждого запроса.

Url может быть

https://fbcdn-creative-a.akamaihd.net/hads-ak-xpf1/t45.1600-4/10550663_6020611914088_842271416_n.png без каких-либо размеров

Attempts: 
  1. я думал использовать Regex, но не уверен, будет ли это работать. поскольку нет фиксированного шаблона
  2. Использование URI для удаления второго последнего элемента, но оно не будет выполнено для URL без какого-либо измерения.

Просто ради, я создал скрипку для него, если любой из вас хочу попробовать https://dotnetfiddle.net/Kn2B8H

+0

второй вход ожидается выход. поскольку он не содержит никаких измерений в нем. –

+0

Используйте '\/s \ d + x \ d +' regex в вашем шаблоне замены. Если нет размеров, нет совпадений ergo без замены. – bokibeg

+0

используйте это '@"/[^ /] * (? =/[^ /] * $) "' Регулярное выражение, а затем замените согласованные символы пустой строкой. https://regex101.com/r/aN2nU6/1 –

ответ

1

https://dotnetfiddle.net/bQcgZN

using System; 
using System.Text.RegularExpressions; 

public class Program 
{ 
    public static void Main() 
    { 
     string url1 = "https://fbcdn-creative-a.akamaihd.net/hads-ak-xaf1/t45.1600-4/s110x80/10156615_6017073002888_1171145694_n.png"; 
     string url2 = "https://fbcdn-creative-a.akamaihd.net/hads-ak-xaf1/t45.1600-4/10156615_6017073002888_1171145694_n.png"; 

     Regex reg = new Regex("s\\d+x\\d+/"); 

     Console.WriteLine(reg.Replace(url1, "")); 
     Console.WriteLine(reg.Replace(url2, "")); 
    } 
} 
Смежные вопросы