50 votes

Détecter et extraire l’URL d’une chaîne ?

C’est une question facile, mais je ne comprends tout simplement pas. Je veux détecter l’url dans une chaîne et les remplacer par une chaîne raccourcie.

J’ai trouvé cette expression de stackoverflow,Mais le résultat est juste ``

Y a-t-il une meilleure idée?

63voto

BullyWiiPlaza Points 5382
<pre><code></code><p>Exemple:</p><pre><code></code></pre><p>Impressions:</p><pre><code></code></pre></pre>

10voto

M'vy Points 3176

m.group(1) vous donne le premier groupe correspondant, c’est-à-dire la première parenthèse de capture. Le voici ``

Vous devriez essayer de voir s’il y a quelque chose dans m.group(0), ou entourer tout votre motif de parenthèses et utiliser à nouveau m.group(1).

Vous devez répéter votre fonction de recherche pour qu’elle corresponde à la suivante et utiliser le nouveau tableau de groupes.

5voto

stema Points 36113

La détection des URL n’est pas une tâche facile. Si c’est suffisant pour que vous obteniez une chaîne qui commence par https?| ftp|file alors ça pourrait aller. Votre problème ici est, que vous avez un groupe de capture, le `` et ceux-ci ne sont qu’autour de la première partie http...

Je ferais de cette partie un groupe non capturant en utilisant (?:) et mettrais des crochets autour du tout.

4voto

Billy Moon Points 21439

Avec quelques crochets supplémentaires autour de l’ensemble (sauf la limite de mot au début), il devrait correspondre à l’ensemble du nom de domaine:

Je ne pense pas que regex corresponde à l’url entière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X