Wie kann ich alle HTML-Tags einschließlich & nbsp mit Regex in C # entfernen? Meine Saite sieht aus wie
"<div>hello</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>"
Antworten:
Wenn Sie keine HTML-Parser-orientierte Lösung zum Herausfiltern der Tags verwenden können, finden Sie hier einen einfachen regulären Ausdruck dafür.
Idealerweise sollten Sie einen weiteren Durchlauf durch einen Regex-Filter durchführen, der mehrere Leerzeichen als berücksichtigt
quelle
<[^>]+?>
gemäß @David S.) könnte dies ein bisschen schneller machen, aber diese Lösung wurde nur in einem Live-Projekt verwendet - sehr glücklich +1 :)Regex.Replace(inputHTML, @"<[^>]+>| ", " ")
Sound<b>Cloud</b>
als Eingabe; Sie werden am Ende haben,Sound Cloud
während es hätte entfernt werden sollen,SoundCloud
weil es so in HTML angezeigt wird.Ich habe den Code von @Ravi Thapliyal genommen und eine Methode erstellt: Es ist einfach und bereinigt möglicherweise nicht alles, aber bisher macht es das, wofür ich es brauche.
quelle
Ich benutze diese Funktion seit einer Weile. Entfernt so ziemlich jedes unordentliche HTML, das Sie darauf werfen können, und lässt den Text intakt.
quelle
quelle
Ich habe den Code von @RaviThapliyal & @Don Rolling verwendet, aber eine kleine Änderung vorgenommen. Da wir die & nbsp durch eine leere Zeichenfolge ersetzen, stattdessen aber & nbsp durch Leerzeichen ersetzt werden sollten, wurde ein zusätzlicher Schritt hinzugefügt. Es hat bei mir wie ein Zauber funktioniert.
Verwendet & nbps ohne Semikolon, da es vom Stapelüberlauf formatiert wurde.
quelle
Dies:
passt zu jedem Tag oder
dann x =
hello
quelle
Das Bereinigen eines HTML-Dokuments ist mit vielen kniffligen Dingen verbunden. Dieses Paket kann hilfreich sein: https://github.com/mganss/HtmlSanitizer
quelle
HTML ist in seiner Grundform nur XML. Sie können Ihren Text in einem XmlDocument-Objekt analysieren und im Stammelement InnerText aufrufen, um den Text zu extrahieren. Dadurch werden alle HTML-Tages in beliebiger Form entfernt und Sonderzeichen wie & lt; & nbsp; alles auf einmal.
quelle
Sie können es hier testen: https://regex101.com/r/kB0rQ4/1
quelle