¿Cómo escribir expresiones regulares?

Una expresión regular (a veces denominada expresión racional) es una secuencia de caracteres que define un patrón de búsqueda, principalmente para su uso en coincidencia de patrones con strings, o coincidencia de strings, es decir, operaciones similares a «buscar y reemplazar». (Wikipedia).

Las expresiones regulares son una forma generalizada de hacer coincidir patrones con secuencias de caracteres. Se utiliza en todos los lenguajes de programación como C++, Java y Python.

¿Qué es una expresión regular y qué la hace tan importante?
Los expresiones regulares se utilizan en Google Analytics en la coincidencia de URL para respaldar la búsqueda y el reemplazo en los editores más populares como Sublime, Notepad ++, Brackets, Google Docs y Microsoft Word.

Example :  Regular expression for an email address :
^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$ 

La expresión regular anterior se puede usar para verificar si un conjunto de caracteres dado es una dirección de correo electrónico o no.

¿Cómo escribir una expresión regular?

  • Repetidores : * , + y { } :
    estos símbolos actúan como repetidores y le indican a la computadora que el carácter anterior se debe usar más de una vez.
  • El símbolo de asterisco ( * ):
    Le dice a la computadora que coincida con el carácter anterior (o conjunto de caracteres) por 0 o más veces (hasta un infinito).
    Example : The regular expression ab*c will give ac, abc, abbc, 
    abbbc….ans so on 
  • El símbolo más (+):
    le dice a la computadora que repita el carácter anterior (o conjunto de caracteres) por lo menos una o más veces (hasta un infinito).
    Example : The regular expression ab+c will give abc, abbc,
    abbc, … and so on.
  • Las llaves {…}:
    Le dice a la computadora que repita el carácter anterior (o conjunto de caracteres) tantas veces como el valor dentro de este paréntesis.
    Example : {2} means that the preceding character is to be repeated 2 
    times, {min,} means the preceding character is matches min or  more 
    times. {min,max} means that the preceding character is repeated at
    least min & at most max times.
    
  • Comodín – ( . )
    El símbolo de punto puede tomar el lugar de cualquier otro símbolo, por eso se
    le llama carácter comodín.
    Example : 
    The Regular expression .* will tell the computer that any character
    can be used any number of times.
  • Carácter opcional – ( ? )
    Este símbolo le dice a la computadora que el carácter anterior puede
    o no estar presente en la string que se va a comparar.
    Example : 
    We may write the format for document file as – “docx?”
    The ‘?’ tells the computer that x may or may not be 
    present in the name of file format.
  • El símbolo de intercalación (^): Configuración de la posición para la coincidencia: le dice a la computadora que la coincidencia debe comenzar al principio de la string o línea.
    Example : ^\d{3} will match with patterns like "901" in "901-333-".
  • El símbolo de dólar ($)
    le dice a la computadora que la coincidencia debe ocurrir al final de la string o antes de \n al final de la línea o string.
    Example : -\d{3}$ will match with patterns like "-333" in "-901-333".
  • Clases
    de caracteres Una clase de caracteres coincide con cualquiera de un conjunto de caracteres. Se utiliza para hacer coincidir el elemento más básico de un idioma, como una letra, un dígito, un espacio, un símbolo, etc.

    /s : coincide con cualquier carácter de espacio en blanco, como espacio y tabulación
    /S : coincide con cualquier carácter que no sea un espacio en blanco
    /d : coincide con cualquier carácter de dígito
    /D : coincide con cualquier carácter que no sea un dígito
    /w : coincide con cualquier carácter de palabra (básicamente alfanumérico)
    /W : coincide con cualquier carácter que no sea una palabra
    /b : coincide con cualquier límite de palabra (esto incluiría espacios, guiones, comas, punto y coma, etc.)

    [set_of_characters] : coincide con cualquier carácter individual en set_of_characters. De forma predeterminada, la coincidencia distingue entre mayúsculas y minúsculas.

    Example : [abc] will match characters a,b and c in any string.

    [^set_of_characters] – Negación: coincide con cualquier carácter individual que no esté en set_of_characters. De forma predeterminada, la coincidencia distingue entre mayúsculas y minúsculas.

    Example : [^abc] will match any character except a,b,c .

    [primero-último]Rango de caracteres: Coincide con cualquier carácter individual en el rango del primero al último.

    Example : [a-zA-z] will match any character from a to z or A to Z.
  • El símbolo de escape: \

    Si desea hacer coincidir el ‘+’ real, ‘.’ etc., agregue una barra invertida ( \ ) antes de ese carácter. Esto le indicará a la computadora que trate el siguiente carácter como un carácter de búsqueda y lo considere para un patrón coincidente.

    Example : \d+[\+-x\*]\d+ will match patterns like "2+2"
    and "3*9" in "(2+2) * 3*9".
  • Caracteres de agrupación ( )

    Se puede agrupar un conjunto de diferentes símbolos de una expresión regular para que actúen como una sola unidad y se comporten como un bloque, para esto, debe envolver la expresión regular entre paréntesis().

    Example : ([A-Z]\w+) contains two different elements of the regular 
    expression combined together. This expression will match any pattern 
    containing uppercase letter followed by any character.
  • Barra vertical ( | ):
    Coincide con cualquier elemento separado por el carácter de barra vertical (|).

    Example :  th(e|is|at) will match words - the, this and that.
  • \number:
    Backreference: permite que una subexpresión coincidente previamente (expresión capturada o encerrada entre corchetes) se identifique posteriormente en la misma expresión regular. \n significa que el grupo encerrado en el enésimo corchete se repetirá en la posición actual.
    Example : ([a-z])\1 will match “ee” in Geek because the character 
    at second position is same as character at position 1 of the match.
  • Comentario: (?# comentario) –
    Comentario en línea: el comentario termina en el primer paréntesis de cierre.
    Example : \bA(?#This is an inline comment)\w+\b

    # [hasta el final de la línea]: comentario en modo X. El comentario comienza con un # sin escape y continúa hasta el final de la línea.

    Example :  (?x)\bA\w+\b#Matches words starting with A

Este artículo es una contribución de Abhinav Tiwari . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuido@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *