正则表达式匹配xml文档

<ts_htmlEditor><STRONG><U><EM>asdasdasa<IMGsrc="~/Outside/GetFile.aspx?DP=%2FTextEdit... <ts_htmlEditor><STRONG><U><EM>asdasdasa<IMG src="~/Outside/GetFile.aspx?DP=%2FTextEditor%2FC64.gif"><SUB>aaaaaasdasd</SUB>asda</EM></U><FONT color=#00cc99 size=5 face="楷体 ">sdasdaww<IMG src="~/Outside/GetFile.aspx?DP=%2FTextEditor%2FBeforeHead_01.jpg"></FONT></STRONG></ts_htmlEditor>

需要用正则匹配出以上字符串中的<IMG xxxxx >
然后把最后的>替换为/>以规范这段xml
现在遇到个问题 我写的正则(?:\<IMG.*?)(\>)能够正确匹配出> 但是内容有两组 如图

匹配出的结果总是有个分组0 把整段<IMG都匹配出来了

现在我想用C#的Regex.Replace把>替换掉 有没有正则表达式只搜索出最后一个>的
或者Regex.Replace可以按分组替换
展开
 我来答
匿名用户
2015-11-18
展开全部
string str = "<ts_htmlEditor><STRONG><U><EM>asdasdasa<IMG src=\"~/Outside/GetFile.aspx?DP=%2FTextEditor%2FC64.gif\"><SUB>aaaaaasdasd</SUB>asda</EM></U><FONT color=#00cc99 size=5 face=\"楷体 \">sdasdaww<IMG src=\"~/Outside/GetFile.aspx?DP=%2FTextEditor%2FBeforeHead_01.jpg\"></FONT></STRONG></ts_htmlEditor>";
Regex reg = new Regex("(?i)<img[^>]*>");
string str2 = reg.Replace(str, "");
Console.WriteLine(str2);
追问
不是匹配整个标签中的">"并替换为"/>"
追答
string str = "<ts_htmlEditor><img src=\"abc.jpg\" /  ><STRONG><U><EM>asdasdasa<IMG src=\"~/Outside/GetFile.aspx?DP=%2FTextEditor%2FC64.gif\"><SUB>aaaaaasdasd</SUB>asda</EM></U><FONT color=#00cc99 size=5 face=\"楷体 \">sdasdaww<IMG src=\"~/Outside/GetFile.aspx?DP=%2FTextEditor%2FBeforeHead_01.jpg\"></FONT></STRONG></ts_htmlEditor>";
           Regex reg = new Regex(@"(?i)(<img[^>]*)(?<!\s*/\s*)>");
           string str2 = reg.Replace(str, "$1 />");
           Console.WriteLine(str2);

回答完毕,采纳即可,如不采纳,不再answer

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式