如何用正则表达式替换FLASH同时替换embed 标签中的 src="x.swf"
object  标签中的 <param name="movie" value="x.swf">
关键是 name value 不分先后顺序,最好在一个 表达式中完成

解决方案 »

  1.   

    你想替换成什么string test = "<a href='http://www.baidu.com' ><embed src=\"http://d.lanrentuku.com/lanren/flashad/300x250-0281.swf\" width=\"300\" height=\"250\" type=\"application/x-shockwave-flash\" scale=\"\" play=\"true\" loop=\"true\" menu=\"true\"></embed></a>object 标签中的 <param name=\"movie\" value=\"x.swf\">";
    Regex reg = new Regex(@"(?is)(<(?:embed|param)\b[^>]*?(?:src|value)=(['""]?))[^'""\s>]+(\2[^>]*>)");
    string result = reg.Replace(test, "$1想换成什么,就换成什么!$3");
    richTextBox2.Text = result;
    /*-------输出-------
    <a href='http://www.baidu.com' ><embed src="想换成什么,就换成什么!" width="300" height="250" type="application/x-shockwave-flash" scale="" play="true" loop="true" menu="true"></embed></a>object 标签中的 <param name="movie" value="想换成什么,就换成什么!">
    */如果不满足需求,给具体实例对应结果,一定要有对应结果
      

  2.   

    string test = "<a href='http://www.baidu.com' ><embed src=\"http://d.lanrentuku.com/lanren/flashad/300x250-0281.swf\" width=\"300\" height=\"250\" type=\"application/x-shockwave-flash\" scale=\"\" play=\"true\" loop=\"true\" menu=\"true\"></embed></a>object 标签中的 <param name=\"movie\" value=\"x.swf\">";
    Regex reg = new Regex(@"(?is)(<(?:embed|param)\b[^>]*?(?:src|value)=(['""]?))[^'""\s>]+(\2[^>]*>)");
    string result = reg.Replace(test, "$1想换成什么,就换成什么!$3");
    richTextBox2.Text = result;