Wenn Sie alle darin enthaltenen HTML-Tags löschen, kann es zu Leseschwierigkeiten kommen (z. B. img-Tags). Es ist am besten, einige zu löschen und einige beizubehalten.
In regulären Ausdrücken wird dies beurteilt Diese Zeichenfolgen sind sehr leicht zu verstehen, aber wie man beurteilen kann, ob sie bestimmte Zeichenfolgen enthalten (eine Zeichenfolge, kein Zeichen, etwas, nicht ein bestimmtes), ist wirklich rätselhaft
<(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+>
Dies Die reguläre Regel besteht darin, zu beurteilen, dass das HTML-Tag nicht li / ul / a / img / br / span / b enthält. In Bezug auf die oben genannten Anforderungen müssen alle HTML-Tags mit Ausnahme der hier aufgeführten gelöscht werden ist etwas, nach dem ich schon lange gesucht habe.
(?!exp) entspricht einer Position, auf die nicht folgt: exp <🎜/?s? aber der Test ist fehlgeschlagen.
Das Folgende ist eine einfache Funktion, die die beizubehaltenden TAGs aneinanderreiht, einen regulären Ausdruck generiert und dann die unnötigen TAGs löscht...
private static string RemoveSpecifyHtml(string ctx) { string[] holdTags = { "a", "img", "br", "strong", "b", "span" };//要保留的 tag // <(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+> string regStr = string.Format(@"<(?!((/?\s?{0})))[^>]+>", string.Join(@")|(/?\s?", holdTags)); Regex reg = new Regex(regStr, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase); return reg.Replace(ctx, ""); }
Wenn li beibehalten wird, werden Sie feststellen, dass der Link auch während des tatsächlichen Betriebs beibehalten wird. Die Lösung besteht darin, die b-Behauptung hinzuzufügen asp.net reguläre Regeln Bitte beachten Sie die PHP-Chinese-Website für verwandte Artikel zum Ausdruck, um den Code des angegebenen HTML-Tags zu löschen!