URL 到站点的正则表达式
Regex for URL to sites
我有两个具有以下模式的 URL:
2.http://localhost:9001/flight/
我有一个网站过滤器,如果正则表达式匹配,它会重定向到相应的网站。我为上面的 2 个 URL 尝试了以下正则表达式模式:
http?://localhost[^/]/f[^flight]/.*
http?://localhost[^/]/flight/.*
两个 URL 都被重定向到第一个站点,因为两个 URL 都与第一个正则表达式匹配。
我试过 http?://localhost[^/]/[f]/.* 也是第一次 url。我无法得到我错过的东西。我觉得这个正则表达式不应该接受 "f" 以外的任何东西,但它也允许 "flight"。
请指出我所犯的错误。
第一个将被以下正则表达式捕获;
/^http:[\/]{2}localhost:9001\/f[^light]$/
另一个将被禁止,可以使用以下正则表达式找到
/^http:[\/]{2}localhost:9001\/flight\/$/
保持简单:
.*/f(/[^/]*)?$
对
.*/flight(/[^/]*)?$
在 $
之前添加 ?
使带有可选路径项的尾部斜杠成为可选。
您的正则表达式有几个问题:1) p?
表示 可选 p
(htt://
将匹配),2) [^/]
将仅匹配您网址中的 :
,因为它只会捕获 1 个字符(并且您有一个端口号),3) [^light]
是一个否定字符 class,表示 任何不是 l
、i
、g
、h
或 t
.
的字符
因此,如果您只想捕获 localhost
个网址,您最好 use this regex 第一个站点:
http://localhost[^/]*/f/.*
第二个this one
http://localhost[^/]*/flight/.*
另请注意,根据您使用正则表达式的位置,您的实际输入可能包含也可能不包含协议。
这些应该适合你:
http[s]{0,1}:\/\/localhost:[0-9]{4}\/f\/
http[s]{0,1}:\/\/localhost:[0-9]{4}\/flight\/
您可以看到它正在运行 here
我有两个具有以下模式的 URL:
2.http://localhost:9001/flight/
我有一个网站过滤器,如果正则表达式匹配,它会重定向到相应的网站。我为上面的 2 个 URL 尝试了以下正则表达式模式:
http?://localhost[^/]/f[^flight]/.*
http?://localhost[^/]/flight/.*
两个 URL 都被重定向到第一个站点,因为两个 URL 都与第一个正则表达式匹配。
我试过 http?://localhost[^/]/[f]/.* 也是第一次 url。我无法得到我错过的东西。我觉得这个正则表达式不应该接受 "f" 以外的任何东西,但它也允许 "flight"。
请指出我所犯的错误。
第一个将被以下正则表达式捕获;
/^http:[\/]{2}localhost:9001\/f[^light]$/
另一个将被禁止,可以使用以下正则表达式找到
/^http:[\/]{2}localhost:9001\/flight\/$/
保持简单:
.*/f(/[^/]*)?$
对
.*/flight(/[^/]*)?$
在 $
之前添加 ?
使带有可选路径项的尾部斜杠成为可选。
您的正则表达式有几个问题:1) p?
表示 可选 p
(htt://
将匹配),2) [^/]
将仅匹配您网址中的 :
,因为它只会捕获 1 个字符(并且您有一个端口号),3) [^light]
是一个否定字符 class,表示 任何不是 l
、i
、g
、h
或 t
.
因此,如果您只想捕获 localhost
个网址,您最好 use this regex 第一个站点:
http://localhost[^/]*/f/.*
第二个this one
http://localhost[^/]*/flight/.*
另请注意,根据您使用正则表达式的位置,您的实际输入可能包含也可能不包含协议。
这些应该适合你:
http[s]{0,1}:\/\/localhost:[0-9]{4}\/f\/
http[s]{0,1}:\/\/localhost:[0-9]{4}\/flight\/
您可以看到它正在运行 here