2015-11-05 79 views
0

我对正则表达式很陌生,并且一直在尝试使用JavaScript为应用程序匹配网址。Javascript正则表达式匹配网址达到'/'

我想匹配的是这样的:

/some/url/string/(name) 

,但也有使用相同字符串,但继续

/some/url/string/(name)/some/more 

,我不想匹配其他网址。

我想我需要使用'[^/]''(?!/)'来匹配没有任何以下'/'(姓名)字段,但我还没有成功与此。

目前我使用这个:

'/some/url/string/\\S*' 

但这匹配我不想匹配

回答

2

编辑代码较长的网址更新为回答问题更好,见下面的评论。

你很亲密。您只需添加+量词。你的第一次尝试(使用[^/])只去寻找单个下一个字符,而不是直到斜杠多个字符。

\/some\/url\/string\/[^\/]+$ 

(我加反斜杠(\)逃脱斜杠(/))。

请参阅工作示例Regex101.com

+0

仍然匹配较长的网址OP不想要的(部分)(如您的示例所示)。 –

+0

@PaulRoub不,它不。它会在下一个斜线之前到达“(name)”的末尾。 –

+0

是的。当根据问题“有其他网址使用相同的字符串,但继续'/ some/url/string /(name)/ some/more',我不想匹配这些。” –

1

你并不需要一个正规表示法来实现它,你可以试试这个: string.split('/')[4];

如果你正在寻找的完整路径,可以使用: string.split('/').slice(0,5).join('/');

-1

试试这个:

/some/url/string/[a-z]+