使用Regex Concat一个字符串中的URL

时间:2014-02-07 11:11:03

标签: c# regex indexing

我正在使用HTML Agility Pack从HTML代码中获取图像源。

图片链接

http://www.example.com/images/item001_ZM80.jpg

我拍摄的每个图像链接(ZM80,ZM35)的值ZM80都会改变,这表示图像的缩放值。我想删除该值“_ZMxx”,其中xx可以是01到99

我想将存储在字符串变量中的链接连接到以下内容(删除“_ZM80”)

http://www.example.com/images/item001.jpg 

有些情况下,网址是

http://www.example.com/images/item001_ZM80_AL30.jpg

在这种情况下,我也只想删除_ZM80

我能够获得变量中出现ZM的索引值。

int finalImage = imagestring.IndexOf("ZM");

3 个答案:

答案 0 :(得分:1)

您可以使用Regex.Replace方法。

<强> E.g。

 string str = getUrl("http://www.example.com/images/item001_ZM80.jpg");
 string str1 = getUrl("http://www.example.com/images/item001_ZM80_AL30.jpg");

   public string getUrl(string url)
    {
        string result;

        result = Regex.Replace(url, "_ZM(.{2})", "");

        return result;
    }

如果你不确定在_ZM之后可以有少于2位的字符,那么你可以使用以下功能来获取URL:

    public string getUrl(string url)
    {
        string result;
        string extension = System.IO.Path.GetExtension(url);

        result = Regex.Replace(url, "_ZM(\\d{0,2})", "");

        return result;
    }

答案 1 :(得分:0)

int index = imagestring.IndexOf("ZM");
string number = imagestring.SubString(index + 2, imagestring.Length - (index + 6)); // index + 2 + ".jpg.length"
int imagenum = int.Parse(number);
string newImage = imagestring.Substring(0, index) + (imagenum + 1) + ".jpg";

答案 2 :(得分:0)

int percentIndex = imagestring.IndexOf("ZM");
if (percentIndex != -1)
{
     imagestring = imagestring.Remove(percentIndex, 4);
}