正则表达式匹配匹配域的所有子域
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.com
。 RegexPlanet是一个用最小的设置疼痛测试正则表达式的好地方。
另一答案
假设子域只包含数字和小写字母,并且您不想接受子子域:
[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/
以上是关于正则表达式匹配匹配域的所有子域的主要内容,如果未能解决你的问题,请参考以下文章