2017-09-13 121 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;