【问题标题】:Regex, exclude filename in html正则表达式,排除 html 中的文件名
【发布时间】:2021-06-22 01:13:07
【问题描述】:

HTML 代码

<div class="thx_thanked_post"><a title="Click to enlarge" target="_blank" data-fancybox="data-2581" data-type="image" href="images/thx/star.png"><img src="images/thx/star.png" alt="Better response on post dqwdqwdqwqdwdqwqwdwdwd" class="thx_thanked_post_img"></a>Just a "quick" overview of what's good and why.<br>

<a title="Click to enlarge" target="_blank" data-fancybox="data-2581" data-type="image" href="images/thx/kek.png"><img src="images/thx/kek.png" alt="Better response on post dqwdqwdqwqdwdqwqwdwdwd" class="thx_thanked_post_img"></a>
<br>
Note: Hyper speed is referenced multiple times here. This is a bug(?) where after reaching speeds over 160 km/h, you continue accelerating like crazy while traveling in a straight line, allowing you to reach speeds of over 500 km/h with a good boost under ideal conditions. Making good use of hyper speed when possible is huge for cutting time, and much of what makes something good is how easily and consistently it works to give hyper speed.<br>

我想排除带有“stars.png”的&lt;img&gt;标签,由&lt;a&gt;标签括起来。

我的正则表达式:

<a [^>]*\>([\t]|[\n])*<img[^>]*^(?!.*star\.png$)[^>]*\>([\t]|[\n])*<\/a>

它不起作用。这没什么。 正确匹配应该只拾取第二个 &lt;a&gt; 标记与 &lt;img&gt; 具有“images/thx/kek.png”但没有“images/thx/star.png”。

【问题讨论】:

  • JavaScript? Python? php?将适用的标签添加到帖子中。
  • @zer00ne 这是 php,对不起。但基本上我正在测试regex101.com/r/R3P1eF/1
  • test 中没有任何文字与star 更接近。只需删除该正则表达式并输入 star 并没有匹配项。

标签: php html regex


【解决方案1】:

&lt;a [^&gt;]*&gt;([\t]|[\n])*&lt;img(?!.*star\.png)[^&gt;]*&gt;([\t]|[\n])*&lt;\/a&gt; 似乎有效。

^$ 匹配行的开头和结尾,它们可能不是您想要匹配的,所以我将它们删除。 [^&gt;]* 匹配 img 标记中的所有内容,并在结束 &gt; 之前停止。前瞻断言(?!.*star\.png)&gt; 开始匹配,而不是img 标记中的内容,所以我将它移到[^&gt;]* 前面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多