正则表达式匹配匹配域的所有子域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式匹配匹配域的所有子域相关的知识,希望对你有一定的参考价值。

我有一个正则表达式匹配网页的子域名,如下所示

 "^https://[^/?]+\\.(sub1|sub2\\.)domain\\.com"

什么是接受domain.com的任何子域的正则表达式。

编辑:

我的问题不完整,我的正则表达式只是接受

 https:[any number of sub domain s ].sub1domain.com 

要么

 https://[any number of sub domain s ].sub2domain.com

抱歉发布不完整的问题。

答案

这个应该适合您的需求:

https?://([a-z0-9]+[.])*sub[12]domain[.]com

另一答案

我假设不希望子域只是一个数字。使用这个正则表达式:

(^https:\/\/(?:[\w\-\_]+\.)+(?:subdomain1|subdomain2).com)

单个捕获组是完整的URL。只需将subdomain1和subdomain2替换为您的实际子域。

我在regex101.com上测试了这个

另一答案

你会用的

"^https://[^/?]+\\.([^.]+)\\.domain\\.com"

归结为匹配

"[^.]+"

对于任何子域名。将只匹配子域的最后一部分(www.xxx.domain.com将在组1中捕获“xxx”)

另一答案

试试http://([^.]+\\.)+sub[12]domain.comRegexPlanet是一个用最小的设置疼痛测试正则表达式的好地方。

另一答案

假设子域只包含数字和小写字母,并且您不想接受子子域:

[0-9a-z]*\.domain\.com

更新:

https://.*\.sub[1|2]domain\.com

火柴

https://sub1.sub2.sub1domain.com 
https://sub1.sub1domain.com 

但不是

https://sub1domain.com 
另一答案

就像是:

(http|https)://(.*).domain.com

此时第二个标签(即\2$2变量)就是您所需要的。请注意,此正则表达式不验证URL。

证明:https://www.debuggex.com/r/3KYGmAnlnBq3C_fT

另一答案

这是一个正则表达式,匹配任意数量的子域,也允许IDN域,并检查63或更少字符的限制。并检查 - 不是第一个或最后一个位置。

https?://([a-z0-9](?:[a-z0-9-]1,61[a-z0-9])?[.])*sub[12][.]domain[.]com/

以上是关于正则表达式匹配匹配域的所有子域的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配逗号或换行符,但不能同时匹配两者

MySQL正则表达式匹配

php 正则表达式 匹配网站内容

java正则表达式如何获取字符串中所有匹配内容

如何用正则表达式匹配指定字符开始和指定字符结束?

请教一个正则表达式,匹配以某开头,某结尾的所有字符串的写法