it-swarm.com.de

Wie kann ich einen String zwischen <strong> Tags mit C # extrahieren?

Angenommen, ich habe eine Zeichenfolge wie die folgende:

"Unneeded text <strong>Needed Text</strong> More unneeded text"

Wie kann ich nur den " Benötigten Text " extrahieren? Ich vermute, Regex ist wahrscheinlich der einfachste Weg, aber Regex sieht für mich immer noch nach Hieroglyphen aus.

8
Bazinga
Regex regex = new Regex("<strong>(.*)</strong>");
  var v = regex.Match("Unneeded text <strong>Needed Text</strong> More unneeded text");
  string s = v.Groups[1].ToString();
19
Anna.P

Sie brauchen dafür keinen regulären Ausdruck.

Sie können String.SubString und String.Split Methoden wie;

string s = "Unneeded text <strong>Needed Text</strong> More unneeded text";
Console.WriteLine(s.Substring(s.IndexOf("<strong>") + "<strong>".Length, s.IndexOf("</strong>") - s.IndexOf("<strong>") - "<strong>".Length));

Ausgabe wird sein;

Needed Text

Hier eine DEMO .

11
Soner Gönül

Schauen Sie sich das HTML Agility Pack an oder AngleSharp

8
devdigital

Verwenden Sie HTMLAgilityPack und sparen Sie sich Kopfschmerzen. So etwas sollte es tun:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("html...");

var innerText = doc.DocumentNode.Descendants("strong").Select(x => x.InnerText).SingleOrDefault(); 
3
DGibbs

In Ihrem Beispiel würde dies eine einfache Split tun, z.

var innerText = text.Split('>')[1].Split('<')[0];
1
George Johnston

Wie wäre es mit einem einfachen regulären Ausdruck wie:

(?<=<strong>).+?(?=<)
0
Brandon