2010-10-24 2 views
0

J'ai trouvé un lien dans un tweet que ma regex actuelle ne va pas analyser et je n'arrive pas à comprendre comment le faire fonctionner (probablement en raison de mon incompétence avec regex).Regex pour l'analyse des tweets pour les liens

Voici le code actuel:

preg_match_all('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@',$description, $matches, PREG_SET_ORDER); 

Et le Tweet qui n'analyser:

Amazon: prêt à venir 14 jours pour Kindle "plus tard cette année". http://usat.me?128426

Il est le lien usat.me qui est vissant les choses. Des pensées?

Répondre

1
((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?((/)?([-\w/_\.]*(\?\S+)?)?)*) 

essayer. Devrait marcher. modifié le/à être (/)? ce qui signifie que la dernière barre oblique est censée être là 0 ou 1 fois.

+0

Ça a l'air génial. Merci beaucoup. – Noah

1

Vous pouvez l'essayer ici, il travaille au moins pour moi:

http://www.spaweditor.com/scripts/regex/

Vous pouvez essayer cette RegEx:

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’])) 
+0

Je ne connaissais pas ce site, merci. Malheureusement, il renvoie toujours http://usat.me au lieu de l'URL complète. – Noah

+0

Avez-vous essayé le RegEx I fourni? Cela fonctionne bien – infinity

+0

Merci, mais l'outil de test est de retour: "Unknown modifier '\'" – Noah

Questions connexes