Página principal » Codificación » Guía para principiantes a la expresión regular (Regex)

    Guía para principiantes a la expresión regular (Regex)

    Una expresión regular es un conjunto de caracteres que forman un patrón que se puede buscar en una cadena. Regex puede ser utilizado para validación como para validar números de tarjetas de crédito, por buscar es decir, a través de concordancias de texto complejas, y para reemplazo de texto coincidente con otra cuerda. También tiene una excelente compatibilidad con múltiples idiomas: apréndelo una vez y puede usarlo en muchos lenguajes de programación.

    He visto a pocas personas echar un primer vistazo a expresiones regulares, e ignorarlo por completo. No los culpo; La sintaxis de regex es compleja y hará que muchos se estremezcan al igual que los lenguajes de línea de comandos, solo que peor. Pero entonces, cada cosa nueva da miedo y parece imposible aprender al principio. Entonces, tomando prestadas las palabras de Horacio, diré esto; Comience, sea audaz, y aventúrese a ser sabio..

    Acerca de Regex

    Regex tenía sus raíces en la neurociencia y las matemáticas y solo fue implementado en la programación en 1968 por Ken Thompson en el editor de texto QED para búsqueda de texto. Ahora es parte de muchos lenguajes de programación como Perl, Java, Python, Ruby y JavaScript..

    Veamos algunos ejemplos de cómo funciona la expresión regular..

    Estaré usando JavaScript en mis ejemplos. Ahora, para pasar el nivel de principiante, necesitas aprender todos los Personajes, clases, cuantificadores, modificadores y métodos. utilizado en regex. Aquí hay un enlace a la página de Expresión regular de Mozilla Developer Network donde puede ver una tabla que contiene todos esos. También puede consultar la hoja de trucos al final de esta publicación con los caracteres más utilizados.

    Veamos un ejemplo simple con una explicación. Esto es un regex.

    Esto es lo que buscará la expresión regular anterior en una línea, un carácter 'B' seguido de al menos uno de cualquier carácter entre (e incluyendo) 'a' a 'z', 'A' a 'Z' y los números 0 a 9.

    Aquí hay una muestra de coincidencias en una línea resaltada:

    Cesta, bulbo, B12 vitamina, BaSO4, norte antes de Cristo empresa

    La expresión regular anterior detendrá la búsqueda en Cesta y devolver una respuesta positiva. Eso es porque el modificador global 'sol'tiene que ser especificado Si quieres que la expresión regular mire todas las coincidencias posibles.

    Ahora, veamos cómo usar esta expresión en JavaScript. los prueba método va: si se encuentra un retorno de partido cierto, más falso.

     var input = "su cadena de prueba", regex = / B [a-zA-Z \ d] + /; if (! regex.test (input)) alert ('No se encontraron coincidencias'); else alert ('Se encontró una coincidencia');

    Probemos con otro método: partido devuelve las coincidencias encontradas en una matriz.

     var input = "su cadena de prueba", regex = / B [a-zA-Z \ d] + / g, / * He agregado el modificador global 'g' a la expresión regular para obtener todas las coincidencias * / ary = input.match (regex); if (ary === null) alert ('No se encontraron coincidencias'); else alert ('las coincidencias son:' + ary.toString ());

    Que tal una cuerda reemplazar? Intentemos eso con expresiones regulares ahora.

     var input = "su cadena de prueba", regex = / B [a-zA-Z \ d] + / g; alerta (input.replace (regex, "#"));

    A continuación hay un codepen para que lo modifiques. Haga clic en la pestaña "JavaScript" para ver el código JS.

    Ceremonias

    Para ejercicios, puedes google “ejercicios de expresiones regulares” Y trata de resolverlos. Esto es lo que debe esperar al intentar estos ejercicios, según los niveles de dificultad..

    BASIC

    A mi poder validar una contraseña es suficiente para empezar Por lo tanto, valide una contraseña de 8 a 16 caracteres de longitud, alfanumérica con su elección de caracteres especiales permitidos.

    Intermedio

    Aquí es donde deberías practicar con más datos del mundo real y aprender algunos puntos regex más como Mirar hacia delante, mirar detrás de las afirmaciones y grupos coincidentes;

    • Valide códigos PIN, hexadecimales, fechas, ID de correo electrónico, punto flotante.
    • Reemplace el cero final, los espacios en blanco, un conjunto de palabras coincidentes
    • Extraer diferentes partes de una URL

    Avanzado

    Puede optimizar las soluciones de los ejercicios anteriores: la expresión regular más óptima para el correo electrónico tiene miles de caracteres, por lo que llévalo tan lejos como te sientas cómodo y eso es suficiente. También puedes probar:

    • Analizar HTML o XML (aunque en el mundo real no se recomienda hacerlo, ya que usar expresiones regulares para analizar lenguaje no regular como HTML nunca lo hará infalible. Además, analizar XML es una tarea difícil, más adecuada para usuarios de nivel avanzado)
    • Reemplazo de etiquetas
    • Eliminar comentarios (excepto los comentarios condicionales de IE)

    Herramientas

    Herramientas para visualizar regex es una de las mejores cosas que hay para mí. Si alguna vez se encuentra con una expresión regular compleja, solo copie y pegue en una de esas herramientas y podrá ver el flujo claramente. Además de eso, hay muchas herramientas que puede utilizar para jugar con el código de expresiones regulares. También muestran ejemplos y hojas de trucos junto con características de compartir.

    • Debuggex: dibuja un diagrama de expresiones regulares según su entrada y puede hacer un rápido intercambio a StackOverflow directamente desde allí.
    • RegExr - Puede probar su expresión regular con este. También tiene referencias, una hoja de trucos y ejemplos para ayudarlo.
    • Refiddle: en este momento, aparte de JavaScript, también puedes jugar con Ruby y las versiones .NET de expresiones regulares en él..

    Hoja de registro de Regex

    Simbólico Definición
    [a B C] Cualquier carácter único a, b o c
    [^ abc] Cualquier personaje que no sea a, b o c
    [Arizona] Carácter entre (incluido) de la A a la Z
    [^ a-z] Personaje excepto de la A a la Z
    [ARIZONA] Personaje entre (incluido) de A a Z
    . Cualquier caracter
    \ s Cualquier caracter de espacio en blanco
    \ S Cualquier carácter no en blanco
    \re Cualquier dígito 0 a 9
    \RE Cualquier no dígito
    \ w Cualquier carácter de palabra (letra, número y guión bajo)
    \ W Cualquier caracter que no sea palabra
    (…) Captura todo lo encerrado
    (a | b) Coincidir con a o b
    una? El carácter a está ausente o presente una vez
    una* El carácter a está ausente o presente más veces
    una+ El personaje a está presente una o más veces.
    un 3 3 apariciones de carácter consecutivo
    un 3, 3 o más apariciones de carácter a consecutivamente
    un 3,6 3 a 6 apariciones de carácter consecutivo.
    ^ Comienzo de cuerda
    PS Fin de la cuerda
    \segundo Un límite de palabra. Si un carácter es la última o la primera palabra de una palabra o Si un carácter está entre una palabra o un carácter que no es una palabra
    \SEGUNDO Límite sin palabra

    Ahora lea: Expresiones regulares: 30 herramientas y recursos útiles