我需要一个正常的表达式来过滤我的子域名,从www.
开始,将它们重定向到没有www.
所以我需要在域名中过滤超过3个点的网址,并以www.
开头:
when HTTP_REQUEST {
if { [HTTP::uri] matches_regex "**?????????????**" } {
//* do Something
} else {
//* do something else
}
}
测试用例:
www.subdomain.domain.com
应转换为subdomain.domain.com
。
我没有任何正则表达式的经验,所以如果有人有线索,那将会很有帮助。
答案 0 :(得分:1)
我认为这就是你想要的:
^www(\.[^\/\?\n]*){3}
通过一些输入测试here。
<强>说明强>
^www
匹配开头的三个w
。
[^\/\?\n]*
匹配域名末尾标记以外的任何内容(?
也可以结束域名。)
(\.[^\/\?\n]*){3}
匹配一个点,后跟域名末尾以外的任何内容,三次。这部分将确保您有一个子域(3个点计算www.
)。
答案 1 :(得分:-1)
您确定需要正则表达式来匹配吗?
使用正则表达式完成所需的最简单方法是:
^www\.
^
是字符串开头的锚点,\.
是转义点,因为正则表达式中的点表示除换行符之外的任何内容。
所以基本上这个正则表达式告诉你,匹配我www
正好在字符串的开头,然后出现点字符。
您可以在此处查看演示:https://regex101.com/r/ZnVFaR/1