Encuentra usuarios de Twitter en tu ciudad con LocaFollow

votarExpresiones regulares para dar formato a un Tweet

Autor: aartiles | Archivado en: JavaScript, PHP el día 6/Ene/2010
Deprecated: Function eregi() is deprecated in /home/bitacora/public_html/wp-content/plugins/wp-codebox/main.php on line 171

Deprecated: Function eregi() is deprecated in /home/bitacora/public_html/wp-content/plugins/wp-codebox/main.php on line 171

Las expresiones regulares es una de las ramas de la programación que más exprime nuestra creatividad, capaces de convertir un complejo algoritmo de parsing en una simple línea de código. A mi particularmente se me dan regulares las expresiones regulares xD, por ello tengo mi propia lista de expresiones favoritas y hoy os compartiré la más moderna de ellas relacionada con Twitter y que he utilizado en mis últimas twitapps LocaFollow y FollowFriday.

Se trata de un conjunto de expresiones que identifican y dan formato a las diferentes partes de un Tweet:

  • Encuentra las URLs convirtiéndolas en enlaces con la etiqueta <a>
  • Encuentra las menciones a usuarios de la forma @nombre_usuario, convirtiéndola en enlaces con la etiqueta <a> hacia http://twitter.com/nombre_usuario
  • Encuentra los hashtags de la forma #parabra, convirtiéndolos en enlaces con la etiqueta <a> que apuntan hacia http://search.twitter.com/search?q=palabra

Ejemplo

Dar Formato | Reestablecer
Vota @e24presenter en el concurso #bbvaopentalent http://bit.ly/8V98vZ

Os dejo las implementaciones javascript y php:

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function linkify($status_text, $links = true, $mentions = true, $hashtags = true) {
  // dar formato a URLs
  if ($links) {
    $status_text = preg_replace(
      '/(https?:\/\/\S+)/',
      '<a href="\1?phpMyAdmin=Za64-l76GuOml1u3RA%2Cqg1O5lQ6">\1</a>',
      $status_text
    );
  }	
 
  // dar formato a las menciones
  if ($mentions) {
    $status_text = preg_replace(
      '/(^|\s)@(\w+)/',
      '\1@<a href="http://twitter.com/\2">\2</a>',
      $status_text
    );
  }	
 
  // dar formato a hastags
  if ($hasttags) {
    $status_text = preg_replace(
      '/(^|\s)#(\w+)/',
      '\1#<a href="http://search.twitter.com/search?q=%23\2">\2</a>',
      $status_text
    );
  }	
 
  return $status_text;
}

Javascript

?View Code JAVASCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function linkify(status_text, links, mentions, hashtags) {
  // dar formato a URLs
  if (links) {
    status_text = status_text.replace(/(https?:\/\/\S+)/gi,'<a href="$1?phpMyAdmin=Za64-l76GuOml1u3RA%2Cqg1O5lQ6">$1</a>');
  }	
 
  // dar formato a las menciones
  if (mentions) {
    status_text = status_text.replace(/(^|\s)@(\w+)/g,'$1<a href="http://twitter.com/$2">@$2</a>');
  }	
 
  // dar formato a hastags
  if (hashtags) {
    status_text = status_text.replace(/(^|\s)#(\w+)/g,'$1#<a href="http://search.twitter.com/search?q=%23$2">$2</a>');
  }	
 
  return status_text;
}

Inspiración: Linkify Your Twitter Feed por David Walsh.

Alfredo ArtilesSoy Alfredo Artiles, Co-Fundador de equipo24, e24Presenter y e24Apps. Mi pasión es el AJAX, SEO, SEM y emprender todo lo que se me ponga por delante. Si me necesitas estoy 24x7 en Twitter @aartiles24.

Tags: , , , ,
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • LinkedIn
  • Meneame
  • MySpace
  • Technorati
  • TwitThis
Posts Relacionados

3 Comentarios on “Expresiones regulares para dar formato a un Tweet”

  1. #1 Bitacoras.com dijo 12:41 pm el Enero 6th, 2010:

    Información Bitacoras.com…

    Valora en Bitacoras.com: Las expresiones regulares es una de las ramas de la programación que más exprime nuestra creatividad, capaces de convertir un complejo algoritmo de parsing en una simple línea de código. A mi particularmente se me dan regul…


  2. #2 Juan Maria Nieves dijo 3:42 pm el Enero 6th, 2010:

    Os dejo el equivalente en c#

    http://pastebin.com/d4f87c7ed


  3. #3 Función de c# para far formato a un tweet | Un programador más dijo 4:57 pm el Enero 6th, 2010:

    [...] el twitter he visto el excelente artículo de Alfredo Artiles sobre Expresiones regulares para dar formato a un Tweet , este excelente profesional ha desarrollado funciones para php y javascript y despues de leer su [...]



Deja un comentario.