使用条件从URL获取没有扩展名的文件名

时间:2014-06-24 19:31:06

标签: javascript regex url path

我已经看过很多从URL或路径获取文件名的例子,但我无法解决这个问题。

我的网址如下所示:

http://www.bob.net/john/john/ken/mary.html 

如果网址中存在Mary,我需要获得/john/john。否则,如果路径

中仅存在ken,我需要获取/john

我可以使用mary获得\/\w*\/\w*\/(\w*)\/(\w*),但是依赖于Mary在第4次斜线之后。

我怎样才能做到这一点?

编辑 - 感谢目前为止的回复。

如果/ john存在于网址中,是否有机会让这种动态变得正常?不管其他什么?

2 个答案:

答案 0 :(得分:0)

尝试这种模式
^.*?[^\/]\/([^\/]+)\/(?:\1\/[^\/]+\/([^\/.]+)|([^\/]+))
Demo您正在寻找的是第二个捕获组

答案 1 :(得分:0)

如果路径中MaryJohn,否则为John,请使用此功能:

^(?=.*john).*(mary)|.*(ken)

如果匹配,请检查match[1]match[2]:只会设置一个。

在Perl和PCRE中,您可以通过条件或分支重置更紧凑地执行此操作。