我正致力于在我们的一个遗留系统中操作/提取格式良好的HTML中的数据。我需要使用正则表达式来解析HTML,找到某些模式,提取数据,并返回一些修改过的HTML。我知道正则表达式和HTML永远不是答案,但鉴于我确切知道数据的来源以及数据是否正确结构,我相信这将适用于特定情况。
我正在使用的HTML具有以下模式:
<i>Name1</i>: Some text goes here<br/>
<i>Name2</i>: Some different text goes here<br/>
<i>Name3</i>: Some other different text goes here<br/>
我需要将HTML更改为以下内容:
<i>Name1</i><p>Some text goes here</p>
<i>Name2</i><p>Some different text goes here</p>
<i>Name3</i><p>Some other different text goes here</p>
基本上,我想取内部文本,将其包装在p标签中,然后删除尾部br。
我想做以下事情:
Dim HTML as String = [The HTML goes here]
html = Regex.Replace(html, "</i>:(.+?)<br\s*\/?>", "</i><p>(.+?)</p>", RegexOptions.Multiline)
但显然无效。
在VB.net中,如何用新的HTML替换所有想要的HTML实例?
答案 0 :(得分:2)
我建议使用HTML Agility Pack来解析和操作HTML(特别是如果HTML的格式不规则)。源代码下载了一堆示例项目,因此您可以看到如何使用它。
答案 1 :(得分:1)
试一试:
Dim HTML as String = [The HTML goes here]
Dim evaluator As MatchEvaluator = Function(m As Match)
Return "</i><p>" & m.Groups(1).Value & "</p>"
End Function
html = Regex.Replace(html, "</i>:(.+?)<br\s*\/?>", evaluator, RegexOptions.Multiline)