首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >剥离域名所需的正则表达式

问剥离域名所需的正则表达式
EN

Stack Overflow用户
提问于 2011-01-25 17:20:03
回答 4查看 13.6K关注 0票数 3

我需要一个正则表达式来剥离域名部分的网址。举个例子,如果我有下面的url:

http://www.website-2000.com

我希望正则表达式匹配的是'website-2000‘。

如果您还能解释正则表达式的每个部分做什么,以帮助我理解它,那就太好了。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-25 17:40:47

这个应该行得通。它可能有一些缺点,但我现在想不出任何缺点。如果任何人想要改进它,请随时这样做。

代码语言:javascript
复制
/http:\/\/(?:www\.)?([a-z0-9\-]+)(?:\.[a-z\.]+[\/]?).*/i

http:\/\/            matches the "http://" part
(?:www\.)?           is a non-capturing group that matches zero or one "www."
([a-z0-9\-]+)        is a capturing group that matches character ranges a-z, 0-9
                     in addition to the hyphen. This is what you wanted to extract.
(?:\.[a-z\.]+[\/]?)  is a non-capturing group that matches the TLD part (i.e. ".com",
                     ".co.uk", etc) in addition to zero or one "/"
.*                   matches the rest of the url

http://rubular.com/r/ROz13NSWBQ

票数 11
EN

Stack Overflow用户

发布于 2011-01-25 17:38:42

让我向您介绍这个很棒的工具txt2re:regular expression generator

在这里,您可以尝试使用正则表达式并以多种语言生成代码。

票数 4
EN

Stack Overflow用户

发布于 2011-10-10 22:50:50

这使您不必担心任何http/https/ftp等...在前面,也捕获了你所有的子域。

代码语言:javascript
复制
(?:www\.)?([a-z0-9\-.]+)(?:\.[a-z\.]+[\/]?).*/i

我发现它唯一失败的时候是:-如果一个。在没有任何文本的域/子域之前,。包含在正则表达式捕获中。-电子邮件。都不会起作用。(在运行regex之前,通过检查传递的域中的@符号来修复此问题)-域/子域中间的空白

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4791700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档