2014-08-31 83 views
1

我知道這已經發布過,但我無法得到它的工作。C#獲取2個HTML標籤之間的字符串

我有這個字符串:<div class="s20 red">120.000.000 kr.</div>

但我只想120.000.000 kr.

我如何可以隔離字符串?

+1

如果你的html比這更完整,然後使用像[HtmlAgilityPack](http://htmlagilitypack.codeplex.com/)這樣的真正的html解析器。 – 2014-08-31 13:16:48

回答

5

使用正則表達式:

var a = @"<div class=""s20 red"">120.000.000 kr.</div>"; 
var b = Regex.Match(a, "(?<=>)(.*)(?=<)"); 
Console.WriteLine(b.Value); 

輸出: 120.000.000 KR。

+1

正則表達式對於這種模式匹配非常好。 – 2014-08-31 12:54:09

+0

我只是想到了一件事情:如果我的字符串中有多個HTML標籤?那我怎麼才能得到120.000.000克朗? – Andreas 2014-08-31 13:09:38

0

您可以使用IndexOf方法找到標籤結束和開始的位置,並使用SubString方法獲取它們之間的文本。例如:

string price = "<div class=\"s20 red\">120.000.000 kr.</div>"; 

int start = price.IndexOf('>'); 
int end = price.IndexOf('<', start); 
price = price.Substring(start + 1, end - start - 1); 
0

比所有的基於文本的解決方案更簡單的選擇,如果你的HTML是有效的XML(減去頭),這是在你的代碼段的情況下是使用LINQ XML API

XElement.Parse(yourstring); 
XElement.Value // this contains exactly what you asked for. 
相關問題