问问题
334 次
5 回答
0
使用这个正则表达式:
(<div.*?<a.*?</a>)(?:.*?</a>)*.*?(</div>)
它将返回 2 个组。第一组将包含从第一行的开头<div
到</a>
结尾。第二组将包含结束</div>
。只需将这两个组连接起来,您就拥有了所需的东西。
于 2013-01-01T11:18:31.993 回答
0
尝试 :
var str = "" ;// Your String goes Here.
var firstPos = str.indexOf("<a");
var lastPos = str.lastIndexOf("</a>");
var regex = new RegExp("\<a.*a\>");
var firstTag = str.match(regex);
var str1 = str.slice(0,firstPos);
var str2 = str.slice(lastPos);
str = str.replace(regex, "");
str = str1 + (firstTag.toString().split(",")[0]).toString() + str2;
于 2012-12-21T11:30:58.970 回答
0
如果你真的想这样做,如你所见,在 div 中,每个 a 元素用逗号分隔,所以你可以尝试:
string result = Regex.Replace(your_html, ",.+</a>", "", RegexOptions.Singleline)
或者:
string result = Regex.Replace(html, "(!?,)<a .+a>(?=</div>)", "", RegexOptions.Singleline)
于 2013-01-01T10:59:55.217 回答
0
您不需要使用正则表达式。这是一种非常粗略的方法,但它应该可以工作。
string html = "... html goes here";
string cleanedUpHtml = html.Substring(0, html.IndexOf("</a>") + 4) + "</div>";
于 2012-12-21T10:55:26.537 回答
0
string html = ...
string rem = Regex.Match(html, "<a .+?</a>(.+?)</div>", RegexOptions.Singleline).Result("$1");
html = html.Replace(rem, String.Empty);
于 2012-12-21T11:02:43.347 回答