2016-08-20 3 views
1

Dire que j'ai une URL:Regex pour obtenir une partie spécifique d'une URL

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

Je suis à la recherche d'une expression rationnelle qui permet d'extraire tous les caractères du nom de fichier jusqu'au premier trait de soulignement. Donc, dans l'URL ci-dessus, je veux extraire "oui".

Jusqu'à présent, je réussi à obtenir l'ensemble « yes_no_no » bits en utilisant:

/([^\/]+)(?=\.\w+$)/, mais je ne peux pas sembler obtenir à seul match « oui ».

Répondre

3

Essayez ceci:

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

Exemple:

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])