正则表达式匹配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可以按分组替换 展开
需要用正则匹配出以上字符串中的<IMG xxxxx >
然后把最后的>替换为/>以规范这段xml
现在遇到个问题 我写的正则(?:\<IMG.*?)(\>)能够正确匹配出> 但是内容有两组 如图
匹配出的结果总是有个分组0 把整段<IMG都匹配出来了
现在我想用C#的Regex.Replace把>替换掉 有没有正则表达式只搜索出最后一个>的
或者Regex.Replace可以按分组替换 展开
1个回答
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询