You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Regex中实现‘AND’逻辑表达式及提取图片URL

正则表达式相关问题解答

一、如何在正则表达式中实现类似‘AND’逻辑的表达式?

要在正则里实现“同时满足多个条件”的AND逻辑,有几种实用的方法,按需选择就行:

  • 顺序无关的多条件匹配(最常用):用**正向预查(positive lookahead)**叠加多个检查条件。比如要匹配同时包含"apple"和"banana"的字符串,不管二者出现顺序,正则可以写成:

    ^(?=.*apple)(?=.*banana).+$
    

    解释下:(?=.*apple)先检查字符串里存在"apple",(?=.*banana)再检查存在"banana",最后.+匹配整个符合条件的字符串。这种方式不限制关键词先后,只要都存在就会匹配。

  • 顺序固定的多条件匹配:如果你的条件有明确先后顺序(比如必须先出现"cat"再出现"dog"),直接按顺序写条件即可:

    .*cat.*dog.*
    

    这个写法会匹配所有包含"cat"且后面跟着"dog"的字符串。

  • 字符属性级的AND匹配:如果要匹配同时满足多种字符属性的字符串(比如同时包含数字和字母),同样可以用预查实现:

    ^(?=.*\d)(?=.*[a-zA-Z]).+$
    

二、提取单/双引号包裹的img src URL

你现在的问题是现有正则只能识别双引号包裹的URL,要兼容单引号,只需要调整匹配引号的部分就行。

针对你给出的img标签片段,我们可以写这样的正则:

src=['"](https://aaa\.s3\.amazonaws\.com/[^'"]+)['"]

关键调整点:

  • ['"]:用字符集匹配单引号或双引号,两种引号都能识别
  • [^'"]+:匹配URL内容,用“非单/双引号”的字符集限定,确保只提取引号之间的URL,不会带入后续的引号或其他属性

如果需要适配更通用的场景(比如其他域名的img src),可以把URL部分改成更宽泛的匹配:

src=['"](https?://[^'"]+)['"]

这个正则能提取所有以http/https开头、被单/双引号包裹的src属性值,不管域名是什么。

用这个正则测试你的两段img标签,不管是单引号还是双引号包裹的URL,都能准确提取出来~

内容的提问来源于stack exchange,提问作者PeakGen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:37:05