需求:实现精确匹配无后续路径URL的正则表达式
精确匹配根域名URL的正则方案
当然可以实现这个需求!正则表达式完全能精准满足你的匹配要求,我来给你详细说明:
推荐正则表达式
^http://(us-|ch-)?loadbalance\.com/?$
表达式拆解(逐个部分解释)
^:锁定字符串的起始位置,确保URL严格从http://开头,避免前面出现多余字符http://:匹配固定的HTTP协议前缀(us-|ch-)?:可选的区域前缀分组,?表示这个分组可以出现0次或1次——完美支持不带前缀、带us-或者ch-三种场景loadbalance\.com:匹配核心域名,注意这里的.要用\转义,因为正则里.默认会匹配任意字符,转义后才能精准匹配域名里的点/?:可选的末尾斜杠,?表示这个斜杠可有可无,兼顾带/不带末尾斜杠的根URL$:锁定字符串的结束位置,确保.com(或.com/)之后没有任何额外内容,直接排除所有带后续路径的URL
测试验证
会被匹配的URL:
http://loadbalance.com/http://us-loadbalance.com/http://ch-loadbalance.com/http://loadbalance.com(如果需要支持不带末尾斜杠的根域名,这个正则也能覆盖)
不会被匹配的URL:
http://loadbalance.com/site.aspxhttp://us-loadbalance.com/site.aspxhttp://ch-loadbalance.com/site.aspx- 任何带后续路径/参数的URL,比如
http://loadbalance.com/?id=1也会被排除
如果你的场景必须要求URL以/结尾(只匹配带斜杠的根URL),可以把正则调整为:
^http://(us-|ch-)?loadbalance\.com/$
这样就只会匹配末尾带斜杠的根域名URL,不带斜杠的http://loadbalance.com就不会被命中了。
内容的提问来源于stack exchange,提问作者Ankur Rai
相关产品推荐
相关产品推荐

