gpt4 book ai didi

javascript - 使用正则表达式从 URL 检测器中排除 mySite

转载 作者:行者123 更新时间:2023-12-03 00:18:13 26 4
gpt4 key购买 nike

我有这个正则表达式(在 javascript 中)用于检测任何 URL,但不检测域中包含“mysite”(又名“example”,因为 stackoverflow 过滤器)的 URL。

(?<protocol>\w+s?:\/\/)?(?<subdomain>\w+\.)(?<domain>(?!example)(\w+))(?<tls>\.\w{2,4})(?<querystring>\/.*)?\S*

  • ?检测 URL 协议(protocol)的协议(protocol)(http、https、ftp 等...
  • ?subdomain 检测任何子域
  • ?domain 检测任何域(这里是我想排除我的网站的地方)
  • ?tls 检测 .com、.org 等...
  • ?querystring 检测 URL 的其余部分

示例:

No detected
https://www.example.org/hello?
http://www.example.org/hello
https://blog.example.org/hello?
example.org
www.example.org

Detected
www.example.org
www.www.example.org
example.org

You can see this regex and examples on regex101 here

最佳答案

正如与您讨论的那样,有几件事需要注意。下面提到其中一些,

  • 域级别组需要 *,因为您希望允许它零次或多次。
  • 需要将其括在单词边界中,以禁止其在文本中部分匹配。
  • 正则表达式末尾的
  • .* 需要替换为 \S* 以避免匹配 URL 中的任何空格

通过这些更改,您更新后的工作正则表达式将变成这样,

\b(?<protocol>\w+s?:\/\/)?(?<subdomain>\w+\.)*(?<domain>(?!mysite)(\w+))(?<tls>\.\w{2,4})(?<querystring>\/\S*)?\b

<强> Demo

关于javascript - 使用正则表达式从 URL 检测器中排除 mySite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54439126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com