【问题标题】:Select some image tags using regex使用正则表达式选择一些图像标签
【发布时间】:2014-12-16 16:03:48
【问题描述】:

我有这段代码可以选择所有<img> 标签:

$pattern = "@<img[^>]*src=[\"\']([^\"\']*)[\"\'][^>]*>@";

我想将其更改为仅选择其类中没有“noajax”的图像。例如:

&lt;img src="../" /&gt; -> 应该被选中

&lt;img src="../" class="noresize noajax" /&gt; -> 不应该被选中

【问题讨论】:

  • 我将添加标准注释,指出 RegEx 是用于解析 HTML 的错误工具。如果您的案例范围很窄,并且您没有处理任意 HTML,那么它可能“足够好”,但在现实世界中它会一直困扰您。
  • @RikHeywood:算了吧。都没了。他来了。

标签: php html regex image


【解决方案1】:
<img[^>]*src=[\"\']([^\"\']*)[\"\'](?:(?!\bnoajax\b|>).)*>

试试这个。这应该适合你的情况。

【讨论】:

  • 我想改变它,只出售其类中没有“noajax”的所有图像
【解决方案2】:

@RikHeywood 的评论是正确的。我会推荐 XPath 作为解决这个问题的首选工具。

//img[not(contains(@class, 'noajax'))]

这应该选择文档中没有任何带有文本“noajax”的类。

谷歌搜索一下表明这是一个开始在 PHP 中评估 XPaths 的地方。 http://php.net/manual/en/domxpath.evaluate.php

编辑:忘记链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 2013-11-29
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    相关资源
    最近更新 更多