Comment analyser une URL et d'en extraire la sous-chaîne requis
Dire que j'ai une chaîne comme celle-ci: "http://something.example.com/directory/"
Ce que je veux faire est de convertir cette chaîne, et d'en extraire le "something"
de la chaîne.
La première étape, est évidemment assurez-vous que la chaîne contient "http://"
- sinon, il doit ignorer la chaîne.
Mais, comment puis-je ensuite, il suffit d'extraire le "something"
dans cette chaîne? Supposons que toutes les chaînes que ce sera de l'évaluation ont une structure similaire (c'est à dire que je suis en train d'extraire le sous-domaine de l'URL - si la chaîne en cours d'examen est en effet une URL valide - où valide est commence avec "http://"
).
Grâce.
P. S. je sais comment faire pour vérifier la première partie, c'est à dire que je peux tout simplement diviser la corde à la "http://"
mais qui ne résout pas le problème, parce que cela va produire "http://something.example.com/directory/"
. Tout ce que je veux est la "something"
, rien d'autre.
Ne pas marteau tout avec regexen. L'URL est un objet défini, traité des millions de fois à la fois dans le Rubis de la bibliothèque standard et de millions d'autres pierres précieuses. Si j'étais un expert, je répondrais.
Ce qui est avec tous les downvotes? Ne pas l'obtenir.
Que faire si vous avez quelque chose lik
http://a.b.c.d/directory
, de plus de 2 points dans l'armée ?Les downvotes sont sans doute parce qu'il y a un certain nombre de questions semblables à celle-ci. Vous pouvez trouver comment obtenir de l'hôte à partir d'une URL, puis de trouver le premier élément d'une
'.'
chaîne délimitée.OriginalL'auteur marcamillion | 2012-11-06
Vous devez vous connecter pour publier un commentaire.
J'aimerais faire de cette façon:
URI est construit en Ruby. C'est pas le plus complet mais il est beaucoup capable de faire cette tâche pour la plupart des Url. Si vous avez IRIs puis regarder Adressable::URI.
Et ce n'est pas à nous de maintenir les regex.
Oui...juste ce que je cherchais. Grâce Meng!!!
Homme de fer-blanc scores comme d'habitude.
Je pense que cela ne fonctionnera pas si la chaîne a deux-points( : ) par exemple: URI.parse('abc123')
OriginalL'auteur the Tin Man
Vous pourriez utiliser l'URI comme
et vous pouvez alors simplement de travailler sur l'ordinateur hôte.
Ou il y a une gemme
domainatrix
de Supprimer un sous-domaine de chaîne en rubyet vous pouvez simplement prendre le sous-domaine.
foo.bar/somedir
.C'est pourquoi je vous ai donné la première variante, qui est le même que ce que l'Homme de fer-blanc de réponse.
Comment ce dominatrice maintenu? Est-il mature?
Je n'ai jamais utilisé et il viens de la trouver aujourd'hui. Je ne sais pas.
Bon à savoir.
OriginalL'auteur oldergod
Bien, vous pouvez utiliser des expressions régulières.
Quelque chose comme
/http:\/\/([^\.]+)/
, c'est le premier groupe de non '.' lettres après http.Découvrez http://rubular.com/, vous pouvez tester vos expressions régulières par rapport à un ensemble de tests de trop, il est idéal pour l'apprentissage de cet outil 🙂
OriginalL'auteur resilva87