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

nkoocmlb  于 2023-08-08  发布在  其他
关注(0)|答案(8)|浏览(169)

我有一个正则表达式来匹配一个像下面这样的网页子域

"^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


对不起,我的问题不完整。

rbpvctlc

rbpvctlc1#

这一个应该适合您的需求:

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

字符串


的数据

mznpcxlj

mznpcxlj2#

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

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

字符串
单个捕获组是完整的URL。只需将subdomain1和subdomain2替换为实际的子域。
我在regex101.com上测试了这个

ui7jx7zq

ui7jx7zq3#

例如:

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

字符串
此时,第二标签(即,\2$2变量)是您所需要的。注意,这个正则表达式不验证URL。
校样:https://www.debuggex.com/r/3KYGmAnlnBq3C_fT

wwwo4jvm

wwwo4jvm4#

你会用

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

字符串
归结起来就是

"[^.]+"


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

ff29svar

ff29svar5#

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

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

字符串
更新:

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


火柴

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


但不是

https://sub1domain.com

ijxebb2r

ijxebb2r6#

试试http://([^.]+\\.)+sub[12]domain.comRegexPlanet是一个测试正则表达式的好地方,它的设置非常简单。

62o28rlo

62o28rlo7#

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

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

字符串

pgpifvop

pgpifvop8#

开始处的正斜杠//需要转义以获得正确的正则表达式,因此正确的是:

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

字符串

相关问题