【问题标题】:negate a specific word in regex否定正则表达式中的特定单词
【发布时间】:2019-09-01 12:28:29
【问题描述】:

我有以下文本要通过正则表达式匹配

a href="https://www.bing.com/aclk"

但如果 bing 进入域,我不希望这种类型的链接匹配。

我尝试遵循 stackoverflow 答案之一中回答的正则表达式。但它匹配。

a href="(https?://(?!bing)[^"]+)"

或

a href="(https?://(?:www\.)?(?!bing)[^"]+)"

我想要一个正则表达式,它将返回与域中包含单词 bing 的链接不匹配的链接。

【问题讨论】:

  • 你的环境支持 URL api 吗?如果是,则使用 URL api 解析 url 并检查域名是否包含bing
  • www.anybingany.com 是否有效?

标签: regex


【解决方案1】:

您可以使用否定前瞻来过滤域中允许的内容。

a href="(https?://(?![^/"]*bing)[^"]+)"

请注意,您可能需要转义斜杠,具体取决于您使用此正则表达式的方式:

a href="(https?:\/\/(?![^\/"]*bing)[^"]+)"

这是demo

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 2021-04-20
    • 2010-11-17
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多