2015-11-05 90 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]+