从Facebook Marketing API检索原始大小的图像

时间:2015-03-18 12:10:46

标签: c# regex facebook uri

所以,我正在使用Facebook的营销API来提取一些广告数据。数据包含一些图片网址。

例如:

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

即。缩略图大小,这不是我的要求。通过删除" s110x80"修改网址后这实际上就是维度,从中我得到了我所需要的。

所以,问题就是如何在c#中处理这样的情况,并且我们不必得到" sXxY"在每个请求。

网址可能是

https://fbcdn-creative-a.akamaihd.net/hads-ak-xpf1/t45.1600-4/10550663_6020611914088_842271416_n.png没有任何维度

Attempts:
  1. 我想过使用Regex但不确定它是否会起作用。因为没有固定的模式
  2. 使用URI删除倒数第二个元素,但对于没有任何维度的网址,它将失败。
  3. 只是为了这个缘故,我为它创造了小提琴,如果有人想尝试的话 https://dotnetfiddle.net/Kn2B8H

1 个答案:

答案 0 :(得分: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, ""));
    }
}