0
4

5 に答える 5

0

この正規表現を使用します。

(<div.*?<a.*?</a>)(?:.*?</a>)*.*?(</div>)

2つのグループが返されます。最初のグループには、最初の行の最初から最後<divまでが含まれ</a>ます。2番目のグループには、クロージングが含まれます</div>。2つのグループを連結するだけで、必要なものが得られます。

于 2013-01-01T11:18:31.993 に答える
0

正規表現を使用する必要はありません。これは非常に大雑把な方法ですが、うまくいくはずです。

string html = "... html goes here";
string cleanedUpHtml = html.Substring(0, html.IndexOf("</a>") + 4) + "</div>";
于 2012-12-21T10:55:26.537 に答える
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
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 に答える
0

ご覧のとおり、これが本当に必要な場合は、divで各要素がコンマで区切られているため、次を試すことができます。

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 に答える