CONCEPTOS BASICO DE EXPRESIONES REGULARES
Posted: domingo, 23 de octubre de 2016 by Skuarch in Etiquetas: expresiones regulares, regex
0
Las expresiones regulares no son tan regulares como lo dice su nombre algunas cosas no estan soportadas en ciertos lenguajes, en esta entrada tratare de dar algunos ejemplos de expresiones regulares (regex) que se adaptan a la mayoria de los lenguajes, pero por favor checa con tu lenguaje si la expresion funciona igual debido a que no son un standar pueden varias entre lenguajes
^ inicio de linea
Cuando queremos buscar algo en nuestra cadena el signo ^ le indica a la expresion regular que lo que buscamos debe de estar al principio de la linea
$ fin de linea
Muy parecido al ejemplo anterios pero este indica que lo que buscamos debe de estar al final de la linea
podemos hacer una mezcla de esto por ejemplo buscar lineas vacias que seria algo como esto
El signo de dolares es un caracter especial, pero si esta entre corchetes, la expresion regular no lo tomara encuenta y buscara un signo de dolares
El ejemplo anterior buscara tres minusculas en la cadena
Si deceamos un ejemplo para buscar etiquetas html esto puede ayudar
Para realizar la busqueda de numeros se puede utilizar la siguiente expresion
podemos hacer una mezcla de esto por ejemplo buscar lineas vacias que seria algo como esto
^$Eso nos regresara las lineas vacias
[ée] clases de caracteresCon los corchetes indicamos que nos busque esos caracteres exactos, la expresion regular solo buscara la e y la e con acento
[A-Z] rangosLos corchetes tambien sirven para establecer rangos, en este caso es un rango con letras mayusculas, la expresion solo buscara de la A a las Z en mayusculas
[a-z] rangosEs exactamente los mismo pero con minusculas
[A-Z][a-z] combinando rangosSe pueden hacer combinaciones entre rangos, en este ejemplo se combinan las mayusculas y las minisculas
[^a-z] negacionEn este caso el caret o circumplejo se utiliza para negar, entonces la expresion buscara todo lo que no es minusculas
[A-z][^a-z] el primer caracter tiene que ser mayusculas y lo que le sigue tiene que ser negado a minusculasLa expresion que se encuentra arriba busca el primer caracter en mayusculas de la A-Z y despues cualquier cosa que no sea una minuscula de la a-z
[$] los corchetes hacen que no lo cuente como fin de linea
El signo de dolares es un caracter especial, pero si esta entre corchetes, la expresion regular no lo tomara encuenta y buscara un signo de dolares
| pipeEl pipe se utiliza para hacer un OR
(gmail|yahoo) gruposEn la expresion anterior estamos usando pararentesis para crear grupos y lo combinamos con un pipe para que busque cualquiera de las dos cadenas que se encuentran en los parentesis
. cualquier caracterEl punto se utiliza para que la expresion busque en cualquier caracter
? opcionalEl signo de interrogacion indica que el match es opcional
+ busca uno o mas vecesEl signo de + buscara una o mas veces la cadena a buscar
{e} busqueda de caracteresCon las llaves hacemos una busqueda que puede ser repedia y de un caracter en concreto
3{e} buscar el caracterEl ejemplo anterios buscara 3 veces el caracter "e"
[a-z]{3} busca tres minusculas
El ejemplo anterior buscara tres minusculas en la cadena
\b[a-z]+@Busca de la a-z y tiene un tope o frontera que es la arroba
Si deceamos un ejemplo para buscar etiquetas html esto puede ayudar
<.+> ejemplo para buscar etiquetas htmlLas expresiones regulares son ambiciosas, eso quiere decir que buscaran todas las ocurrencias en la cadena, si queremos evitar eso se puede utilizar el ?
<.+?> esto hace una busqueda detenida
Para realizar la busqueda de numeros se puede utilizar la siguiente expresion
\d busca numeros
\d+(?= pesos) look a headBusca los numeros y que tengas despues la palabra pesos
(?<=MXN )\d+ look behindLo contrario al anterior, MXN es la cadena a buscar, que puede ser cualquier otra
\W caracter alfanumerico
(?1) insensetiveEstos son otros ejemplos de como crear grupos
(\W+)@(\W) grupos la arroba no es algo especialEspero que esta pequeña introduccion de sirva de algo, si no es asi pues largate y buscale por otro lado