代码是下面这样的<p>
<embed src="/editor/kindeditor/attached/media/20130626/20130626065054_3546.avi" type="video/x-ms-asf-plugin" width="550" height="400" autostart="false" loop="true" />
</p>
<p>
addw
</p>
<p>
<embed src="/editor/kindeditor/attached/media/20130626/20130626084219_0577.avi" type="video/x-ms-asf-plugin" width="550" height="400" autostart="true" loop="true" />
</p>
我想取出红色的内容外层标签用flash播放器替代。蓝色内容不固定。
逻辑不是很会。C#正则

解决方案 »

  1.   

    外层标签指哪些内容,不是<embed>包含的内容吗, 如果是,就取以<embed开头,以>结尾
      

  2.   

    是想根据src找到该标签吗?
    string tempStr = File.ReadAllText(@"C:\Users\myx\Desktop\Test.txt", Encoding.GetEncoding("GB2312"));//读取txt                string src="/editor/kindeditor/attached/media/20130626/20130626065054_3546.avi";
                    string pattern = @"(?i)<embed[^>]*?src=(['""]?)"+src+@"\1[^>]*?>";
                    tempStr = Regex.Replace(tempStr,pattern,"替换内容");
      

  3.   

    string regex = @"(?i)<embed[^>]*src=['""]?([^'""]+)\1[^/>]*?>",
           flashMask = "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"...\"><param name="movie" value=\"$1\" /><param name=\"quality\" value=\"high\"/></object>";
    tempStr = Regex.Replace(html, regex, flashMask);
      

  4.   

    string regex = @"(?i)<embed\b[^>]*?src=(['""]?)([^'""]+)\1[^>]*?autostart=\1(?:true|false)\1[^>]*?>",
           flashMask = "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"...\"><param name="movie" value=\"$2\" /><param name=\"quality\" value=\"high\"/></object>";
    result= Regex.Replace(html, regex, flashMask);
      

  5.   

    取出embed 标签里的src然后把embed 标签替换成flash播放标签,将获取的src添加到flash标签的src里。能获取到宽高在调整flash宽高最好,不能调整也行。
      

  6.   

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="722" height="551" id="FLVPlayer">
      <param name="movie" value="FLVPlayer_Progressive.swf" />
      <param name="salign" value="lt" />
      <param name="quality" value="high" />
      <param name="scale" value="noscale" />
      <param name="FlashVars" value="&MM_ComponentVersion=1&skinName=Halo_Skin_3&streamName=7&autoPlay=true&autoRewind=false" />
      <embed src="替换掉的src" flashvars="&MM_ComponentVersion=1&skinName=Halo_Skin_3&streamName=7&autoPlay=true&autoRewind=false" quality="high" scale="noscale" width="722" height="551" name="FLVPlayer" salign="LT" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>
      

  7.   

    string tempStr = File.ReadAllText(@"C:\Users\myx\Desktop\Test.txt", Encoding.GetEncoding("GB2312"));//读取txt                
                    string pattern = @"(?i)<embed[^>]*?src=(['""]?)([^'""]*?)\1[^>]*?>";
                    tempStr = Regex.Replace(tempStr, pattern, a => {
                        string src = a.Groups[2].Value;
                        string result = string.Empty+src;//根据src拼接结果
                        return result;
                    });
      

  8.   


      string html = @"<p>
    <embed src=""/editor/kindeditor/attached/media/20130626/20130626065054_3546.avi"" type=""video/x-ms-asf-plugin"" width=""550"" height=""400"" autostart=""false"" loop=""true"" />
    </p>
    <p>
    addw
    </p>
    <p>
    <embed src=""/editor/kindeditor/attached/media/20130626/20130626084219_0577.avi"" type=""video/x-ms-asf-plugin"" width=""550"" height=""400"" autostart=""true"" loop=""true"" />
    </p>";
                string regex = @"(?is)<embed\s*[^>]*?src=(['""]?)([^'""]+)\1[^>]*?(width=\1\d+\1)\s*(height=\1\d+\1)\s*autostart=\1(?:true|false)\1[^>]*?>",
           flashMask = "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"...\"><param name=\"movie\" $3 $4 value=\"$2\" /><param name=\"quality\" value=\"high\"/></object>";
                html = Regex.Replace(html, regex, flashMask);