我正在寻找匹配URL的某些部分的正则表达式来相应地重定向我的页面。
我用谷歌搜索它没有运气。
EX:
在这个我希望匹配域名后的任何单词或字符,所以它将是/ cat1 / cat2 /
在这个我希望匹配域名后的任何单词或字符,所以它将是/ cat1 / cat2 / cat3 /
寻找2个差异正则表达式来匹配这种网址。第一个正则表达式只匹配仅匹配3个类别的2个类别和第二个正则表达式。
提前谢谢你们。
答案 0 :(得分:2)
这适用于第一种情况,第一种捕获组中包含所需部分:
^http://[^/]+(/(?:[^/]*/){2})$
针对第二种情况,将{2}
部分更改为{3}
。
答案 1 :(得分:1)
听起来很简单。
第一个正则表达式如下: HTTP://.+/([^ /] +)/([^ /] +)/
我会让你猜出第二个正则表达式是什么。
答案 2 :(得分:1)
据我所知,正则表达式不支持反向匹配。这意味着,你不能写一个与正则表达式中的NOT匹配的正则表达式(如果我错了,请有人在此纠正我)。话虽这么说,你可以用这个:
^http:\/\/[^\/]+\/(.*)
使用分组,您可以匹配URL域之后的内容。因此,在这种情况下,您正在寻找的是通过$ 1(由正则表达式末尾括号表示的组)可以获取的内容。另一个重要的事情是在正则表达式的开头^。这样您就不会捕获作为URL的查询参数传递的URL字符串。
答案 3 :(得分:0)
您可以从windwo.location.pathname
var path = window.location.pathname
获得此path
后,您可以使用split('/');