3

我希望能够创建一个节点集合,其中文本以一个单词开头,然后是一个数字。例如,给定以下内容:

<p>FINDTHIS 1</p>
<p>FINDTHIS SOMETEXT</p>
<p>FINDTHIS 2</p>

我希望能够创建一个包含两个段落节点的集合:FINDTHIS 1 和 FINDTHIS 2。

一种可能的方法是创建一个 xpath 查询//p[starts-with(., 'FINDTHIS ')],然后使用正则表达式来确定下一个字符是否是数字。如果我想获得返回上述条件的匹配列表,我可以创建一个正则表达式对象并测试集合中每个成员的文本。

有没有办法使用 HtmlAgilityPack 在选择器中直接使用正则表达式?

4

2 回答 2

2

不,HTML Agility Pack目前不支持此功能。它支持不支持正则表达式的 XPath 版本 1 查询

也就是说,您必须按照您的建议进行操作,并使用 XPath 表达式选择要使用正则表达式的点,然后使用Where扩展方法根据RegEx实例过滤掉适当的节点。

于 2012-07-30T21:08:24.377 回答
1

它不是开箱即用的,但您可以轻松添加此功能。它在这里描述:HtmlAgilityPack: xpath and regex

于 2014-11-21T11:26:08.950 回答