繁体   English   中英

正则表达式可过滤以www开头的子域

[英]Regular Expression to filter subdomains starting with www

我需要一个正则表达式来过滤以www.开头的子域www. 将其重定向到没有www.的相同子域www.

因此,我需要过滤域名中包含超过3个点的网址,并以www.开头www.

when HTTP_REQUEST {

   if { [HTTP::uri] matches_regex "**?????????????**" } {

       //* do Something

   } else {

       //* do something else 

   }

}

测试用例:

www.subdomain.domain.com应该转换为subdomain.domain.com

我对正则表达式没有任何经验,因此,如果有人有线索,将很有帮助。

我认为这是您想要的:

^www(\.[^\/\?\n]*){3}

在这里测试了一些输入。


说明

^www开头匹配三个w

[^\\/\\?\\n]*匹配除域名结尾标记以外的任何内容( ?也可以结尾域名)。

(\\.[^\\/\\?\\n]*){3}匹配一个点,后跟除域名末尾以外的其他任何内容,三遍。 这部分将确保您确实有一个子域(3个点数为www. )。

您确定需要使用正则表达式来匹配它吗?

使用正则表达式可以完成所需操作的最简单方法是:

^www\.

^是字符串开头\\.\\. 是转义的点,因为正则表达式中的点表示除换行符以外的任何内容。

所以基本上这个正则表达式告诉您,将我匹配在字符串开头的www匹配,然后出现点字符。

您可以在此处查看演示: https : //regex101.com/r/ZnVFaR/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM