【问题标题】:Add rel="lightbox" to every a tag including an image but not to those a tags that have a class="nothis", how to?将 rel="lightbox" 添加到每个包含图像的标签,但不添加到具有 class="nothis" 的标签,如何?
【发布时间】:2014-09-17 09:25:55
【问题描述】:

每当我的页面中存在带有 img 标记的 rel="lightbox" 标记时,我都会使用此代码添加如下:

$petropas1 = preg_replace('~<a(?=[^>]+>\s*<img)~','<a rel="lightbox"',$petropas1);

到这里为止还可以,但是如果我想排除其标签具有 class="nothis" 的图像怎么办?我的意思是,当它存在时:

<a href="" class="nothis"><img src="" alt="" title="" border="0" /></a>

我希望我之前向您展示的正则表达式将 rel="lightbox" 添加到 img 之前的每个 a 标签,而不是那些 a 标签具有 class="nothis" 的标签。

您能告诉我如何修改正则表达式以使其正常工作吗?

谢谢

【问题讨论】:

    标签: php html regex lightbox


    【解决方案1】:

    在正向预读内使用负向预读来设置匹配class="nothis"&gt; 一次或多次但不匹配的条件。

    <a(?=(?:(?!class="nothis")[^>])+>\s*<img)
    

    DEMO

    【讨论】:

    • 我们有这个解决方案,非常感谢 Avinash Raj!
    猜你喜欢
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2017-11-20
    相关资源
    最近更新 更多