Ya e hablado aquí y aquí sobre las expresiones regulares, pero nunca se tenie demasiadas de ellas.
Trabajando con un pequeño proyecto personal requería buscar dentro de un texto ocurrencias como @Nombre y #Nombre y convertirlas en un link, la solución es obvia y sencilla con expresiones regulares:
Regex.Replace("this is an example @AlbertEin", "(?<type>[@#])(?<nick>\\w{1,}[^ ])", "<a href=\"http://twitter.com/${nick}\">${type}${nick}</a>");
Esto remplaza “this is an example @AlbertEin” por “this is an example @AlbertEin“.
La expresión regular:
(?<type>[@#])(?<nick>\\w{1,}[^ ])significa: captura bajo el nombre “type” la ocurrencia de texto que inicie con @ ó #, despues captura bajo el nombre “nick” el texto que siga que contenga al menos un carácter de texto hasta que te encuentres con un espacio en blanco.
Espero que después de tres advertencias ahora si vayan y aprendan de esta útil herramienta para la manipulación de texto.