源串
...<IMG height=360 src="../img/1.2.1.4 扁.files/image001.jpg" width=257>...
结果串
...<IMG height=360 src="file:/SDMMC/PDA_FZZL2/img/ico_1.gif" width=257>...
问题:
    我是想把"源串"中的src引号中的内容(如:  ../img/1.2.1.4 扁.files/image001.jpg)替换成 file:/SDMMC/PDA_FZZL2/img/ico_1.gif
我如何写这个规则表则式
string exp = "要生成的规则表则式";
Regex urlregex = new Regex(exp, RegexOptions.Compiled | RegexOptions.IgnoreCase);

解决方案 »

  1.   


    void Main()
    {
     string s=@"<IMG height=360 src=""../img/1.2.1.4 扁.files/image001.jpg"" width=257>";
     Regex urlregex = new Regex(@"../img/1.2.1.4 扁.files/image001.jpg");
     s=urlregex.Replace(s,"file:/SDMMC/PDA_FZZL2/img/ico_1.gif");
     Console.WriteLine(s);
    }
      

  2.   


    //sorry ,楼上的看错 这是最终代码
    void Main()
    {
     string s=@"<IMG height=360 src=""../img/1.2.1.4 扁.files/image001.jpg"" width=257>";
     Regex urlregex = new Regex(@"\"".*\""");
     s=urlregex.Replace(s,"\"file:/SDMMC/PDA_FZZL2/img/ico_1.gif\"");
     Console.WriteLine(s);
    }
      

  3.   


    void Main()
    {
    string s=@"<IMG height=360 src=""../img/1.2.1.4 扁.files/image001.jpg"" width=257>";
     Regex urlregex = new Regex(@"(?i)(?<=src="").*[^""](?=\"")");
     s=urlregex.Replace(s,"file:/SDMMC/PDA_FZZL2/img/ico_1.gif");
     Console.WriteLine(s);
    }
      

  4.   

    Regex.Replace(input,"(?is)(?<=<(a|img)\b.*?(href|src)="")://","file:/SDMMC/PDA_FZZL2");
      

  5.   


     MessageBox.Show(Regex.Replace(@"<IMG height=360 src=""../img/1.2.1.4 扁.files/image001.jpg"" width=257>", @"src=""(.*)""", @"src=""file:/SDMMC/PDA_FZZL2/img/ico_1.gif"""));http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.replace%28VS.80%29.aspx
      

  6.   

    string result = Regex.Replace(your_html,@"(?is)(?<=<img[^<>]*?src=(['""]))((?!\1).)+","file:/SDMMC/PDA_FZZL2/img/ico_1.gif");
      

  7.   

    楼主规则描述不明确
    替换的对应关系是怎样的,不能所有的src的内容都替换成 file:/SDMMC/PDA_FZZL2/img/ico_1.gif吧
    如果仅仅是../img/1.2.1.4 扁.files/image001.jpg)替换成 file:/SDMMC/PDA_FZZL2/img/ico_1.gif,内容都是固定的,直接用string的Replace方法就可以了,哪用得着正则
    另外,不要滥用RegexOptions.Compiled 参数Regex reg = new Regex(@"(?i)(?<=<img[^>]*?src="")[^""]+(?=""[^>]*>)");
    string result = reg.Replace(yourStr, "file:/SDMMC/PDA_FZZL2/img/ico_1.gif");
    richTextBox2.Text = result;
      

  8.   

    我没有描述清楚,是这样的,
    src="../img/1.2.1.4 扁.files/image001.jpg" 中引号的部分替换成
    file:/SDMMC/img/1.2.1.4 扁.files/image001.jpg也就是说,只把..换成file:/SDMMC就可以了,
    因为HTML源码中,不能用普通的替换,所以只要是<IMG src="....">才能替换
      

  9.   


    void Main()
    {
    string s=@"<IMG height=360 src=""../img/1.2.1.4 扁.files/image001.jpg"" width=257>";
     Regex urlregex = new Regex(@"(?i)(?<=src="").*?(?=\/)");
     s=urlregex.Replace(s,"file:/SDMMC");
     Console.WriteLine(s);
    }//结果:
    // <IMG height=360 src="file:/SDMMC/img/1.2.1.4 扁.files/image001.jpg" width=257>
      

  10.   


    这样才说得过去Regex reg = new Regex(@"(?i)(?<=<img[^>]*?src="")\.\.(?=[^""]+""[^>]*>)");
    string result = reg.Replace(yourStr, "file:/SDMMC");
    richTextBox2.Text = result;
      

  11.   

    呵呵,谢谢这位兄弟,可以了,我想了解一下@"(?i)(?<=src="").*?(?=\/)"这个的表达式的含义,能否简单说一下,谢谢了