........<img src="/WebSite7/fckeditor/userfiles/qzen1.jpg" />.........
...<img src="/WebSite7/fckeditor/userfiles/qzen2.jpg" />....
...<img src="/WebSite7/fckeditor/userfiles/qzen3.jpg" />....如上有一篇文章,有很多图片,如何把这篇文章的所有图片的地址换掉,但保留图片名,如下:........<img src=new+"qzen1.jpg" />.........
...<img src=new+"qzen2.jpg" />....
...<img src=new+"qzen3.jpg" />....
应该是通过正则来实现
string str=".....(文章)"
Regex reg = new Regex(".....");
str = reg.Replace(str, new);如何写这个正则表达式啊?

解决方案 »

  1.   

            string str = @"........<img src=""/WebSite7/fckeditor/userfiles/qzen1.jpg"" />.........
    ...<img src=""/WebSite7/fckeditor/userfiles/qzen2.jpg"" />....
    ...<img src=""/WebSite7/fckeditor/userfiles/qzen3.jpg"" />....
    ";
            str = Regex.Replace(str, @"(?<=<img src="")([^/""]*/)*", "newfilepath/");
            Response.Write(str);
      

  2.   


    void Main()
    {
    string str=@"........<img src=""/WebSite7/fckeditor/userfiles/qzen1.jpg"" />.........
    ...<img src=""/WebSite7/fckeditor/userfiles/qzen2.jpg"" />....
    ...<img src=""/WebSite7/fckeditor/userfiles/qzen3.jpg"" />....";
    str=Regex.Replace(str,@"(?is)<img[^>]*?src=(""[^""]+/)([^\.]+\.jpg)""[^>]*/>",delegate (Match m){return m.Value.Replace(m.Groups[1].Value,@"new+""");});
    Console.WriteLine(str);
    }/*
    ........<img src=new+"qzen1.jpg" />.........
    ...<img src=new+"qzen2.jpg" />....
    ...<img src=new+"qzen3.jpg" />....*/
      

  3.   

    貌似不需要正则吧
    直接替换好了。
    string str=".....(文章)";
    str = str.Replace("<img src=\"/WebSite7/fckeditor/userfiles/", "new+\"");
      

  4.   

    string str=".....(文章)"
    Regex reg = new Regex(@"(?<=<img src="")([^/""]*/)*");
    str = reg.Replace(str, new);
      

  5.   

    我不知道你的new的后面是直接跟“吗?根据你的代码:
    ........<img src=new+"qzen1.jpg" />.........如果这样的话:
    string YourCode = "/*your code*/";
    string YourNewPath
    string RegexString = "(?<=src=)[^>]+(?=qzen)";
    Regex delPath = new Regex(RegexString);
    MatchCollection pathColleciton = delPath.Matches(YourCode);
    for (int i = 0; i < pathColleciton.Count; i++)
    {
        YourCode.Replace(pathColleciton[i].ToString(),YourNewPath + "\"");
    }这样的话,如果你的new是c:\的话,代码之后的源码变成了
    <img src=c:\"qzen2.jpg" /img>我觉得你的意思是要得到:
    <img src="c:\\qzen2.jpg" /img>
    这样的话:string YourCode = "/*your code*/";
    string YourNewPath
    string RegexString = "(?<=src=”)[^>]+(?=qzen)";
    Regex delPath = new Regex(RegexString);
    MatchCollection pathColleciton = delPath.Matches(YourCode);
    for (int i = 0; i < pathColleciton.Count; i++)
    {
        YourCode.Replace(pathColleciton[i].ToString(),YourNewPath);
    }
      

  6.   

    string result = Regex.Replace(text,@"(?<=<img[^>]+?src=\x22)[^\x22]+?(?=[^/\x22]+\x22)",@"new_path\");