【发布时间】:2012-12-20 12:29:57
【问题描述】:
我对 PHP 非常陌生,并且对用 PHP 编写的 CMS 中的某个文件进行了轻微修改。我修改了一个函数,该函数在页面源中获取第一个 <img> 标记,以从该源获取随机标记。
用于匹配源的正则表达式是:
$regex = '/<' . $tag . '\\b[^>]*>/i';
其中$tag 只包含一个字符串img。
但是我注意到,在源代码中有 src 属性包含“1px.gif”的图像,我不想匹配这些。
目前我一直从匹配数组中重新选择一个随机元素,直到它不是 1px.gif,但这当然是一个糟糕的解决方案。
我自己的正则表达式还不够好,但我知道上面的正则表达式搜索<img 和一个不是> 的单词字符。我需要添加“并且不包含'1px.gif'”。
我可以选择检查匹配数组并删除每个 1px.gif 条目,但我仍然更喜欢正则表达式。
【问题讨论】:
-
你能举一些例子说明你想匹配什么不匹配吗?
-
@MikeB 我知道不鼓励使用正则表达式,但我不能简单地在网络服务器上安装 PHP 扩展,例如 Simple HTML DOM Parser,因为我真的不知道如何使用 CMS我正在使用...
-
@abhi.gupta200297 很简单,我想匹配 all img 标签 except 其中
src属性包含序列1px.gif。 -
一个不是简单地用正则表达式解析 HTML。
标签: php regex xpath html-parsing domdocument