2017-09-13 165 views
-1

我試圖從HTML標籤提取字符串

<title>what i want</title> 

我知道還有其他的回答或者simiral甚至相同的問題,但似乎對這些問題的答案沒有對我的工作的字符串。我當前的代碼是

String html = wc.DownloadString("URL"); 
Match m = Regex.Match(html, "<title>(.*)</title>", RegexOptions.Singleline); 
MessageBox(m.Value); 

此輸出,我已經使用來自不同的答案其他regural表達式,得到了相同的結果 我也不太熟悉

<title>what i want</title> 

what i want 

注用管理表達式,所以這可能是一個noob問題。

+2

您需要一個HTML解析器。 – SLaks

+0

對不起,它的C#只是編輯 – harambe

+0

可能dupe:https://stackoverflow.com/questions/17298353/how-can-i-extract-a-string-between-strong-tags-usings-c – sniperd

回答

1

嘗試m.Groups[1].Valuedocumentation for Groups)或m.Result("$1")documentation for Result);要麼工作。

Regex.Match返回的對象m是一個對象,其中包含有關匹配內容的各種信息。這包括匹配的整個字符串,包括本例中的標題標籤以及由每組括號匹配的字符串部分。 m.Value給出整個字符串; m.Groups[1].Value給出第一組匹配的部分,m.Groups[2].Value給出第二組匹配的部分等。這必須在正則表達式之外完成,因爲程序可能需要多個組;例如,如果您匹配的是一天中的某個時間,例如(\d+):(\d+),則可能需要將小時(m.Groups[1].Value)分配給一個變量,將分鐘(m.Groups[2].Value)分配給其他變量。

+0

我認爲這是一個表達式問題,'Groups [] .Value'剪出標籤?(它的工作非常感謝) – harambe

+0

@harambe返回的對象包括匹配的整個字符串和每組圓括號匹配的部分。 'm.Value'是你如何得到匹配的整個字符串,'m.Groups'是你如何得到括號中的部分。 – chridd

0
var value = m.Groups[1].Value;