gpt4 book ai didi

正则表达式匹配主域名

转载 作者:行者123 更新时间:2023-12-04 17:24:22 27 4
gpt4 key购买 nike

我需要能够识别任何子域的域名。

例子:

对于所有这些我只需要匹配 example.co/example.com/example.org/example.co.uk/example.com.au/example.gov.us等等

www.example.co
www.first.example.co
first.example.co
second.first.example.co
no.matter.how.many.example.co
first.example.co.uk
second.first.example.co.uk
no.matter.how.many.example.co.uk
first.example.org
second.first.example.org
no.matter.how.many.example.org
first.example.gov.uk
second.first.example.gov.uk
no.matter.how.many.example.gov.uk

我一整天都在玩正则表达式,整天在谷歌上搜索一些东西,但似乎仍然找不到一些东西。

Edit2:我更喜欢一个正则表达式,它可能会在非常奇怪的情况下失败,例如 t.co 然后列出所有 TLD 并拥有那些我没有列出但可以预测失败并匹配更多的顶级域名。这不是你会选择的选项吗?

更新:
使用选择的答案作为指导,我构建了这个适合我的正则表达式。
/([0-9a-z-]{2,}\.[0-9a-z-]{2,3}\.[0-9a-z-]{2,3}|[0-9a-z-]{2,}\.[0-9a-z-]{2,3})$/i
它可能并不完美,但到目前为止我还没有遇到失败的情况。

最佳答案

这将匹配:

([0-9A-Za-z]{2,}\.[0-9A-Za-z]{2,3}\.[0-9A-Za-z]{2,3}|[0-9A-Za-z]{2,}\.[0-9A-Za-z]{2,3})$

只要:
  • 每行末尾没有多余的空格
  • 所有使用的域代码都很短,两个或三个字母长。不适用于 .info 等长域代码。

  • 基本上它所做的是匹配这两个中的任何一个:
  • 两个字母或更长的单词: :两个或三个字母单词: :两个或三个字母单词:行尾
  • 两个字母或更长的单词: :两个或三个字母单词:行尾

  • 精简版:
    (\w{2,}\.\w{2,3}\.\w{2,3}|\w{2,}\.\w{2,3})$

    如果您希望它只匹配整行,则在开头添加 ^

    这是我测试它的方式:

    enter image description here

    关于正则表达式匹配主域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772423/

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