Expresiones regulares con PHP y Javascript

Las expresiones regulares son un mecanismo que nos permite realizar búsquedas y reemplazos de textos complejos. 

Por ejemplo podríamos sustituir todas las ocurrencias del texto "www.yahoo.com" por "www.google.com" utilizando la siguiente expresión regular en javascript: 

texto.replace(/www.yahoo.com/gi,"www.google.com")

El lenguage PERL es el que ha hecho crecer a las expresiones regulares hasta llegar a ser lo que conocemos hoy. En PHP y javascript se contruyen los patrones de forma similar, con Javascript podemos aprovecharnos de ellas mediante los métodos del objeto string, y en php con funciones como preg_search o preg_replace.

 

Para crear patrones tenemos los siguientes caracteres comodín:
  Marca de carácter especial
^ Comienzo de línea / Negación cuando está dentro de ( ) o [ ]
$ Final de línea
. Cualquier carácter salvo el salto de línea
| Para indicar opciones
( ) Para agrupar caracteres
[ ] Conjunto de caracteres opcionales
 
Modificadores. Cada modificador actúa sobre el carácter o el paréntesis inmediatamente anterior.
* Aparece 0 o más veces
+ 1 o más veces
? 1 ó 0 veces
{n} Exactamente n veces
{n,} n veces o más
{n,m} Entre m y n
 
Caracteres especiales
\b Principio o fin de palabra
\B Marca la frontera en una palabra
\d Dígito
\D Carácter alfabético
\O Carácter nulo
\t Tabulador
\f Salto de página
\n Salto de línea
\w Carácter alfanumérico [a-zA-Z0-9_ ]
\W Lo contrario a w ([^a-zA-Z0-9_ ])
\s Espacio
\S Lo contrario a espacio
\cX carácter de control X
\oNN carácter octal NN
\xHH hexadecimal HH
 
Al final del patrón también podemos utilizar modificadores
i El patrón es indiferente a mayúsculas o minúsculas
g Busca todas las ocurrencias del patrón

                     


Algunas expresiones regulares útiles:

/(http)[s?]://)/gi Busca todas las palabras que contengan http:// o https://, insensible a mayúsculas
/[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/ Para validar emails
^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$ Para validar urls
/^[#]$([a-f0-9]{3})|([a-f0-9]{6})$/i Para validar un color en formato html



Comentarios

Sin comentarios
Ha habido un error en el envío
Comentario enviado. Será revisado por la moderación antes de ser publicado.

Deja tu comentario

Tu nombre:
Tu email:
Tu comentario: