[英]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.