2

所以我多年来一直在使用正则表达式,主要是在 PHP 环境中,但我正在开发一个使用 VB .NET 脚本引擎的小项目(我有 VB 经验,但仅此而已),并且在做一些实际问题一些非常基本的东西。

我有一个加载了 HTML 文件内容的变量,我想提取某个标签的值。

例子:

<span id="temp" class="up"><span class="up">76.4</span></span>

在研究了基于 .NET 的正则表达式的变化之后,这就是我想出的(反向引用 1 允许我捕获该数字):

<span id="temp" class="(?:up|down)"><span class="(?:|up|down)">([0-9]+\.[0-9]{1})</span> 

但是,我无法让它工作。RegEx Hero 网站似乎验证了正则表达式,所以我猜问题出在我的代码上。我在网上关注了很多例子,但总是遇到某种错误。更糟糕的是,我正在使用记事本开发这个脚本:p

有人可以为我提供一个提取该数字的有效 VB .NET 脚本示例吗?目标是仅用数字替换该 HTML 变量中的所有文本。

4

1 回答 1

0

你的表达似乎是有效的。我唯一要添加的是数字的命名组。尝试这个:

Dim input = "<span id=""temp"" class=""up""><span class=""up"">76.4</span></span>"
Dim regex = New Regex("<span id=""temp"" class=""(?:up|down)""><span class=""(?:|up|down)"">(?<number>[0-9]+\.[0-9]{1})</span>")
Dim number = regex.Match(input).Groups("number").Value

它应该得到你76.4

还有一件事 - 在解析 HTML 时,使用 HTML parser 而不是 regexes总是更好。我建议HtmlAgilityPack

于 2012-11-30T09:00:07.477 回答