2016-08-20 104 views
1

说我有一个网址:正则表达式得到一个URL的特定部分

http://www.example.com/foo/bar/yes_no_no.html 

我正在寻找一个正则表达式,可以提取文件名的所有字符,直到达到第一个下划线。所以在上面的URL中,我想提取“是”。

到目前为止,我设法使用整个“yes_no_no”位:

/([^\/]+)(?=\.\w+$)/,但我似乎无法得到它的唯一的比赛“是”。

回答

3

尝试这种情况:

/\/([^_\/]+)_?[^\/]*\.[a-z]+$/ 

实施例:

console.log('http://www.example.com/foo/bar/yes_no_no.html'.match(/\/([^_\/]+)_?[^\/]*\.[a-z]+$/)[1]) 
 
console.log('http://www.example.com/foo/bar/yes.html'.match(/\/([^_\/]+)_?[^\/]*\.[a-z]+$/)[1])