gpt4 book ai didi

C# 正则表达式 html 表格内的表格

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:02 25 4
gpt4 key购买 nike

我正在使用以下正则表达式:

(<(table|h[1-6])[^>]*>(?<op>.+?)<\/(table|h[1-6])>)

从 html 文档中提取表格(和标题)。

我发现它在我们使用的文档中工作得很好(用 word 转换的文档另存为过滤后的 html),但是我有一个问题,如果表中包含一个表,则正则表达式将匹配初始表开始标记和第二个表格结束标记,而不是初始表格结束标记。

正则表达式中是否有一种方法可以指定如果它在匹配项中找到另一个表标记以继续忽略下一个匹配项并转到下一个匹配项等等?

最佳答案

不要这样做。

HTML 不是正则语法,因此正则表达式不是解析它的好工具。您在最后一句话中要求的是上下文解析器,而不是正则表达式。纯粹的正则表达式解析很可能无法正确解析 HTML 以负责编码。

HtmlAgilityPack是我过去使用过的 MsPL 许可解决方案,它具有广泛接受的许可条款并提供格式良好的 DOM,可以使用 XPath 进行探测或以其他有用的方式进行操作(“提取所有文本,删除标签”是例如,用于导入用于搜索的 HTML 邮件的流行方法,在让 DOM 解析器分析 HTML 并仅编码为您的特定业务案例增加值(value)的部分之后,这几乎是微不足道的)。

关于C# 正则表达式 html 表格内的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com