gpt4 book ai didi

php - 寻找可靠的 HTML DOM 方法来正确提取包含单个撇号的属性的文本值

转载 作者:行者123 更新时间:2023-11-28 03:52:29 25 4
gpt4 key购买 nike

作为数据迁移任务的一部分,我正在从一些 html 中提取一些数据,alt 中的值和 title img 的属性使用 PHP 的 html 元素。

源 html 的示例是:

<img src='myimage.jpg' alt='Andy's garden vegetables' title='Andy's garden vegetables'/>

如您所见,在源 html 中,alt 的值和 title属性的开始和结束(容器字符)由单个撇号表示 '但在文本本身中,单撇号用于所有格所有权意义上的蔬菜属于安迪。

所以对于一个简单的解析器来说,这将是有问题的,因为它会错误地将文本中的撇号视为值的结尾,如 'Andy'。而不是 'Andy's garden vegetables' .

我能想到的解决方案是将更多的周围文本合并到正则表达式中,以阐明属性值的开始和结束,如 alt=''在最后。尽管如果 = 之间有空格,这将不起作用或者是否使用了双引号。我认为 '单个撇号可能不是合法的 html,但这是我必须处理的数据。

是否有比正则表达式更强大的解决方案,也许基于 html dom 可以处理 '文本中的单个撇号并将它们与用作分隔符区分开来?

最佳答案

这通过使用带有替代内容的环视和不情愿的量词 (.+?) 来匹配示例数据的 alttitle 字段确保匹配不会跳过过去的引号以结束输入中的最后一个引号:

(?<=alt='|title=').+?(?='(\s|/))

查看 live demo此正则表达式与您的示例和一些边缘情况一起使用。

关于php - 寻找可靠的 HTML DOM 方法来正确提取包含单个撇号的属性的文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20043362/

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