我有一个正则表达式来匹配网页的子域名,如下所示
"^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
很抱歉发布不完整的问题。
答案 0 :(得分:20)
答案 1 :(得分:2)
我假设不希望子域只是一个数字而不同。使用此正则表达式:
(^https:\/\/(?:[\w\-\_]+\.)+(?:subdomain1|subdomain2).com)
单个捕获组是完整的URL。只需将subdomain1和subdomain2替换为您的实际子域。
上对此进行了测试答案 2 :(得分:1)
类似的东西:
(http|https)://(.*).domain.com
此时,您需要第二个标记(即\2
或$2
变量)。请注意,此正则表达式不会验证URL。
答案 3 :(得分:1)
假设子域只包含数字和小写字母,并且您不想接受子子域:
[0-9a-z]*\.domain\.com
更新
https://.*\.sub[1|2]domain\.com
匹配
https://sub1.sub2.sub1domain.com
https://sub1.sub1domain.com
但不是
https://sub1domain.com
答案 4 :(得分:1)
你会用
"^https://[^/?]+\\.([^.]+)\\.domain\\.com"
归结为匹配
"[^.]+"
任何子域名。将只匹配子域的最后一部分(www.xxx.domain.com将在组1中捕获“xxx”)
答案 5 :(得分:1)
试试http://([^.]+\\.)+sub[12]domain.com
。 RegexPlanet是一个以最小的设置难度测试正则表达式的好地方。
答案 6 :(得分:0)
这里是一个正则表达式,可以匹配任意数目的子域,也允许IDN域,并检查63个字符或更少的字符数限制。然后检查-不在第一个或最后一个位置。
https?://([a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])?[.])*sub[12][.]domain[.]com/