Extraction d'URL à partir d'un document texte à l'aide de Java + Regular Expressions
Je suis en train de créer une expression régulière pour extraire les Url à partir de documents de texte à l'aide de Java, mais jusqu'ici j'ai été infructueuses. Les deux cas, je suis à la recherche de capture sont énumérés ci-dessous:
Les url qui commencent par http://
Les url qui commencent par www. (Manque le protocole, à partir de l'avant)
avec les paramètres de chaîne de requête.
Merci! Je souhaite que je savais vraiment des expressions Régulières mieux.
Acclamations,
source d'informationauteur rburton
Vous devez vous connecter pour publier un commentaire.
Si vous voulez vous assurer que vous êtes vraiment correspondant à une adresse url et pas seulement un mot commençant par " www.", vous pouvez utiliser l'expression mentionnée par DVK avant. Je l'ai modifiée légèrement et a écrit un petit extrait de code pour être un point de départ pour vous:
Tous RegEx à base de code est conçuen particulier un code à partir de la plus de vote réponse, et voici pourquoi: il se trouve seulement valide Url! Comme un exemple, il ignore tout ce qui commence par "http://" et d'avoir des caractères non-ASCII à l'intérieur.
Même plus: j'ai rencontré 1 à 2 secondes du temps de traitement (single-threaded, dédié) avec Java RegEx package pour les très petites et des phrases simples, rien de particulier; peut-être un bug dans la version 6 de Java RegEx...
La plus simple/la solution la plus Rapide serait d'utiliser StringTokenizer pour diviser le texte en jetons, pour enlever des jetons en commençant par "http://" etc., et pour concaténer des jetons dans le texte à nouveau.
Si vous voulez vraiment utiliser les RegEx avec Java, essayez Automate
Ce lien a de très bonnes URL RegExs (ils sont étonnamment difficile à obtenir, par le moyen - thinh http/https; port #s, les caractères valides, OBTENIR les chaînes, le livre des signes pour les liens d'ancrage, etc...)
http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/
Perl a CPAN bibliothèques qui contiennent cannedRegExes, y compris pour les Url. Pas sûr au sujet de Java si 🙁
Ce teste une certaine ligne si c'est une URL