Ich habe einen HTML-Inhalt, der vom Benutzer über einen Richtext-Editor eingegeben wird, so dass es fast alles sein kann (weniger als außerhalb des Body-Tags, keine Sorgen über "Kopf" oder Doctype usw.). Ein Beispiel für diesen Inhalt:Extrahieren von Textfragmenten aus einem HTML-Body (in. NET)
<h1>Header 1</h1>
<p>Some text here</p><p>Some more text here</p>
<div align=right><a href="x">A link here</a></div><hr />
<h1>Header 2</h1>
<p>Some text here</p><p>Some more text here</p>
<div align=right><a href="x">A link here</a></div><hr />
Der Trick ist, ich brauche nur erste 100 Zeichen des Textes zu extrahieren (HTML-Tags entfernt). Ich muss auch die Zeilenumbrüche beibehalten und kein Wort brechen.
wird also der Ausgang für die oben so etwas wie:
Header 1 Some text here Some more text here A link here Header 2 Some text here Some
Es hat 98 Zeichen und Zeilenumbrüche beibehalten werden. Was kann ich bisher erreichen ist, die alle HTML-Tags mit Regex abzustreifen:
Regex.Replace(htmlStr, "<[^>]*>", "")
dann auch die Länge mit Regex trimmen mit:
Regex.Match(textStr, @"^.{1,100}\b").Value
Mein Problem ist, wie man den Zeilenumbruch Halte ?. Ich erhalte eine Ausgabe wie:
Header 1 Some text hereSome more text here A link here Header 2 Some text hereSome more text
Hinweis die Verbindungssätze? Vielleicht kann mir jemand andere Wege zeigen, dieses Problem zu lösen. Vielen Dank!
Zusätzliche Informationen: Mein Ziel ist es, aus einem Haufen HTML-Inhalt eine Klartext-Zusammenfassung zu generieren. Schätze dies wird helfen, das Problem zu klären.
Versuchen Sie, einen sehr einfachen Browser zu erstellen? Ich frage, denn wenn es so ist, wird die Verwendung von Regex (offensichtlich) Sie nur so weit bringen. – phairoh
@Phairoh Kein Browser, sondern eher ein automatischer Synopsengenerator. –