使用正则表达式提取字符串

本文关键字:字符串 提取 正则表达式 | 更新日期: 2023-09-27 18:31:33

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

在从 html 源中提取 K/D 比率之前,我使用了正则表达式,为此我使用了以下代码:

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行看起来与我的经验大不相同。

使用正则表达式提取字符串

正则表达式不是匹配 HTML 的好主意,除非它是非常简单的、单一的标签匹配。请参阅此处:正则表达式匹配开放标签,但 XHTML 自包含标签除外

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

在JavaScript中(很容易重写为C#和HtmlAgilityPack),它将是这样的:

document.querySelector(
    "section[class=profile-header][profile=true][user=User]"
).textContent
  • HtmlAgilityPack: http://html-agility-pack.net
  • 嘶声:https://www.nuget.org/packages/Fizzler.Systems.HtmlAgilityPack/

一般来说,对于解析 HTML,正则表达式不是一个好的选择!HTML往往非常复杂,很难编写一个正则表达式来匹配所有内容!而是使用像Html Agility Pack这样的解析器。