Regex Chemin d'accès d'URL à partir de l'URL
Je vais avoir un peu de regex difficulté.
Je suis en train d'essayer d'obtenir le chemin d'accès à cette url videoplay
.
http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#hello
Si j'utilise cette expression /.+
elle correspond à /video
.
J'aurais besoin d'une sorte d'anti /négatif match à ne pas inclure //
Quand je dois utiliser regexes sur les urls rapide et sale, j'ai l'habitude d'inclure // au début, avant que le groupe de capture. Remarque vous ne pouvez pas faire http://, car ils peuvent être l'accès à l'aide d'un protocole différent, ou de même ://, car ils sont susceptibles de spécifier le numéro de port.
double possible de l'Obtention de pièces d'une URL (Regex)
double possible de l'Obtention de pièces d'une URL (Regex)
OriginalL'auteur ThomasReggi | 2012-08-19
Vous devez vous connecter pour publier un commentaire.
Dans le cas où si vous en avez besoin pour votre JavaScript web-app: la meilleure réponse que j'ai jamais trouvé sur ce sujet est ici. De base (et aussi original) version du code ressemble à ceci:
Merci John Long, vous faites par jour!
OriginalL'auteur Vlad Mysla
(http[s]?:\/\/)?([^\/\s]+\/)(.*)
groupe 3Démo: http://regex101.com/r/vK4rV7/1
www.abc.com?param=xyz
. J'ai légèrement modifié comme ceci pour le faire fonctionner (j'utilise également de la non-correspondance du groupe pour les deux premiers groupes).(?:https?:\/\/)?(?:[^?\/\s]+[?\/])(.*)
Démo: regex101.com/r/eNUBb9OriginalL'auteur M G
Cette expression est tout après
videoplay
, aka le chemin de l'url.Cette expression est tout après le port. Également constitué de la voie.
Toutefois, Si à l'aide de
Node.js
je recommande le natifurl
module.Qui ne tous les de la regex travail pour vous.
OriginalL'auteur ThomasReggi
Vous pouvez essayer ceci:
([^?]+) ci-dessus est la capture d'un groupe qui retourne votre chemin.
Veuillez noter que ce n'est pas une URL de regex. Il vient de résoudre votre problème de correspondance de tout le texte compris entre le premier "/" après "//" et au caractère"?".
Si vous avez besoin d'un mise en correspondance, vous pouvez vérifier ce StackOverflow lien où ils ont discuté et disséqué toutes les possibilités d'une URI en ses éléments constitutifs, y compris votre "chemin".
Si vous considérez que une exagéré, ET si vous savez que votre URL d'entrée se suivent toujours un schéma d'avoir votre chemin entre le premier "/" et après "?", puis au-dessus de la regex devrait être suffisant.
OriginalL'auteur Kash
Vous dire un négatif lookbehind?
(?<!/)
OriginalL'auteur Niet the Dark Absol
Ce n'est pas une regex solution, mais la plupart des langues ont une URL de la bibliothèque qui va analyser toutes les URL en ses parties constituantes. Ce peut être une meilleure solution pour ce que vous faites.
OriginalL'auteur Toby Allen
Je pense que c'est ce que vous êtes après:
[^/]+$
Démo: http://regex101.com/r/rG8gB9
OriginalL'auteur Firas Dib