使用Regex提取字符串

时间:2016-01-24 01:00:03

标签: c# regex

我想下载一个html源代码,然后搜索用户名和其他信息,然后在我的程序中显示。 我对编程很陌生,但对于像这样的事情(正则表达式)来说是一个直接的菜鸟,所以我希望你能解释一下。

我在从html源代码中提取K / D比率之前使用了Regex,因为我使用了这段代码:

string pattern = @"<span class=""kdratio"">\d+\.\d+";

但我不知道如何开始这个......

这是包含信息的来源行:

<section class="profile-header" profile="true" motto="user's motto" user="User" figure="hr-3322-45.hd-190-1.ch-3342-64-66.lg-285-64.sh-3068-82-66.ea-1404-64">

我只需要user="User"figure="x"部分,我无法尝试任何东西,因为我真的不知道如何开始,因为html线看起来与什么不同我有经验。

2 个答案:

答案 0 :(得分:3)

正则表达式不是匹配HTML的好主意,除非它非常简单,单一,标记匹配。见这里:RegEx match open tags except XHTML self-contained tags

我建议使用HTML DOM解析库并使用XPath或CSS选择器来获取所需的信息。对于.NET,建议使用HtmlAgilityPack。对于CSS选择器,你需要Fizzler(HtmlAgilityPack的附加组件)。

在JavaScript中(很容易重写为C#和HtmlAgilityPack)就是这样:

document.querySelector(
    "section[class=profile-header][profile=true][user=User]"
).textContent

答案 1 :(得分:0)

通常,对于解析HTML,Regex不是一个好选择! HTML往往是如此复杂,编写单个正则表达式以便能够匹配所有内容是如此困难!而是使用像Html Agility Pack这样的解析器。