In Desarrollo y Gestión de pruebas Última actualizaciónated:
Comparte en:
Software de Jira es la herramienta de gestión de proyectos número uno utilizada por equipos ágiles para planificar, rastrear, lanzar y respaldar software excelente.

La expresión de expresiones regulares puede ser un fastidio. ¡Bueno, a veces!

Aprendamos sobre las expresiones regulares y sus patrones. Vamos a examinar esos patrones que parecen una sopa enrevesada de personajes. Veremos qué significa cada carácter de una expresión regular.

Después de leer este artículo, podrás crearate tus expresiones regulares y úsalas como quieras. Al final, también enumeraremos algunos de los online RegEx herramientas de prueba para que, según los requisitos, pueda crearate su RegEx y pruébelo usando estas herramientas.

Introducción

Expresiones regulares o como se conoce comúnmente: la expresión regular es cualquier secuencia de caracteres que se puede usar como un patrón para buscar caracteres o cadenas.

Por ejemplo, para determinar si una cadena o frase contiene la palabra "manzana"Podemos usar la expresión regular"/manzana”Para buscar dentro de la cadena. Como otro ejemplo, podemos usar "/[0-9]”Para comprobar si una cadena determinada contiene un número entre 0 y 9.

Expresiones regulares y su uso

Las expresiones regulares se utilizan ampliamente para una variedad de propósitos en la web moderna.relateoperaciones d. Validación de formularios web, buscadores web, analizadores léxicos en IDE, editores de texto y editores de documentos se encuentran entre algunos ejemplos en los que se utilizan con frecuencia expresiones regulares.

Todos hemos usado "CTRL + F”Muchas veces para buscar dentro de un documento o un fragmento de código para encontrar una palabra, una frase o una expresión en particular. Esta operación se puede señalar como un ejemplo muy común del uso de expresiones regulares.

Antes de continuar, echemos un vistazo a una expresión regular de uso muy común.

¿Puedes adivinar 🤔 el siguiente RegEX para qué se usa?

^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$

No se preocupe si no puede adivinarlo. Estoy muy seguro de que al final de este artículo podrá adivinarlo.

Primero comencemos con A, B, C de RegEx.

Tokens

Para empezar, veamos los distintos símbolos de la expresión regular que se muestra arriba.

^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$

Si miramos la expresión regular dada anteriormente, podemos ver que está compuesta por muchos símbolos o caracteres o tokens. Averigüemos qué significan:

Token

Sentido

^

Este token denota el comienzo de una cadena.

(...)

Esto denota un grupo donde se captura todo lo que se da dentro (…).

[...]

El [] encierra caracteres con cualquiera de los cuales puede coincidir. Por ejemplo, [abc] coincidirá con a o b o c.

Arizona

El conjunto de minúscula alfabetos de la a a la z. Debemos tener en cuenta que Regex distingue entre mayúsculas y minúsculas.

A-Z

El conjunto de mayúscula caracteres de la A a la Z.

0-9

Los dígitos del 0 al 9.

_

Esto coincidirá con el carácter _.

\

Este es el personaje de escape.

\.

Esto coincide con el carácter "." litroally. Esto se utiliza porque el símbolo "." en expresiones regulares hay un token en élself que coincide con cualquier personaje

+

Este es un cuantificador. Esto coincide con uno o más caracteres con los que se usa. Por ejemplo, un + significa una o más ocurrencias del carácter a.

\-

Esto coincidirá con el carácter "-".

@

Esto coincidirá con el carácter "@".

{}

Este es otro cuantificador. Se utiliza para denotar el número de apariciones de un personaje. Por ejemplo, un {3} significa exactamente 3 a's.

$

Esto denota el final de una cadena.

Desglose del patrón Regex dado

Ahora, armados con este conocimiento preliminar de los tokens, intentemos decodificar la expresión regular anterior:

  • <small><span style="color: #ff0000;"><span style="color: #000000;">^([a-zA-Z0-9_\-\.]+)</span></span></small> significa que estamos buscando una cadena que comience con al menos uno o más caracteres alfanuméricos en mayúscula o minúscula, guiones bajos, guiones o puntos. Por ejemplo, cualquier cosa que se parezca a nombre_usuario.01 coincidirá con el patrón. Debemos recordar que aquí no es necesario incluir todos los símbolos, solo un carácter en [a-zA-Z0-9_\-\.] lo haré
  • La @ coincidencias de caracteres para una única aparición de @. Añadiendo a la prevejemplo curioso, algo así como nombre_usuario.01 @ va a encajar.
  • ([a-zA-Z0-9_\-\.]+)  es similar al primer punto. También significa que estamos buscando una cadena que contenga al menos uno o más caracteres alfanuméricos, guiones bajos, guiones o puntos. Añadiendo al ejemplo, nombre_usuario.01@gmail encajará aquí.
  • Como ya habrá adivinado, estamos insinuando un patrón de correo electrónico. Hacia adelante, \. coincide con el sencillo "." personaje. Si continuamos con el ejemplo actual, algo como nombre_usuario.01@gmail.
  • ([a-zA-Z]{2,5})$ esto significa que la cadena debe terminar con de 2 a 5 caracteres del alfabeto, ya sea en mayúsculas o minúsculas. Si agregamos .com a la previous ejemplo, podemos obtener nombre_usuario.01@gmail.com, que es el patrón común de una cadena de correo electrónico.

Combinando todo lo anterior, podemos ver que estamos buscando una cadena de identificación de correo electrónico. Ahora podemos usar esta expresión para IMPORTANTEate cualquier correo electrónico identificación. Si nuestra identificación de correo electrónico de prueba coincide con este patrón, podemos decir que es una identificación de correo electrónico válida.

PS. - Este es un patrón para los identificadores de correo electrónico más comunes en la web.

Tipos de fichas

Se pueden usar muchos tokens en varias combinaciones dentro de una expresión regular para describir una amplia variedad de expresiones. A continuación, veremos los distintos tipos de tokens que se utilizan en las expresiones regulares. Además, también veremos los tokens más utilizados en cada c.atesangriento.

Fichas básicas

Comencemos con los tokens básicos. Estos tokens se utilizan con casi todas las expresiones regulares. Por lo tanto, primero debemos aprender sobre ellos.

Token

Sentido

\r

Esto coincide con el carácter de retorno de carro.

\0

Coincide con el carácter nulo.

\n

Esto busca una nueva línea.

\t

Esto coincide con una pestaña.

Clases de personajes

Continuando, veamos las fichas de personajes. Se utilizan para hacer coincidir alfabetos, números y otros caracteres especiales.

Token

Sentido

a

Esto coincide con el litro.ally para el personaje a. De manera similar, todos los alfabetos y números, cuando se usan de forma aislada, buscan el carácter específico queself.

abecedario

Coincide con la cadena abc.

[a B C]

Esto busca un solo carácter entre a, bo c.

[^ abc]

Esto coincide con cualquier carácter excepto a o b o c.

[Arizona]

Un carácter en minúscula en el rango de la a a la z

[^ az]

Cualquier carácter que no esté en el rango de la a a la z. Esto también incluye caracteres en mayúscula.

[ARIZONA]

Un carácter en mayúscula entre A y Z.

[^ AZ]

Un personaje que no se encuentra entre la A y la Z.

[0 9-]

Cualquier número en el rango de 0 a 9

[^ 0-9]

Un carácter que no está en el rango de 0 a 9

[a-zA-Z0-9]

Esto coincide con un carácter que puede ser un carácter en minúscula entre la a y la z or cualquier carácter entre A y Z or cualquier número entre 0 y 9

[^ a-zA-Z0-9]

Cualquier personaje que no caiga en la previoso catesangriento.

.

Cualquier personaje

\s

Se utiliza para buscar cualquier carácter de espacio en blanco.

\S

Se utiliza para buscar cualquier carácter que no sea un espacio en blanco.

\d

Esto coincide con cualquier dígito

\D

Esto coincide con cualquier otro dígito

\w

Coincide con cualquier carácter de palabra

\W

Coincide con cualquier carácter que no sea una palabra

$

Esto denota el final de una cadena.

\b

Esto coincide con el límite de una palabra

\B

Esto se usa para hacer coincidir un límite que no es de palabras

Cuantificadores

Esta clase especial de tokens se utiliza para hacer coincidir el número de apariciones consecutivas de un carácter, una cadena o un número. Se utilizan junto con los demás tokens.

Veamos algunos cuantificadores comunes.

Tokens

Sentido

a?

Esto coincide con zero o una aparición de a.

a*

Esto coincide con zero o más apariciones (consecutivas) de a.

a+

Esto es para al menos una o más ocurrencias consecutivas de a.

un {5}

Esto busca exactamente cinco apariciones consecutivas de la letra a.

un {5,}

Esto es para al menos cinco o más ocurrencias consecutivas de a.

un {5, 7}

Esto busca cualquier número de a consecutivas entre 5 y 7.

Grupos

Estos tokens coincidirán en grupos como sugiere el nombre.

Tokens

Sentido

(...)

Esto captura todo lo que está entre paréntesis.

(a | b)

Esto coincide con a o b.

(?:…)

Coincide con todo lo que está dentro de los corchetes

(? (1) sí | no)

Esto coincide con un st condicionalateambiente.

Banderas

Estas son instrucciones especiales que se le dan al motor de comparación de patrones mientras busca una coincidencia.

TokensSentido

g

Partido global. Esto buscará hasta que el motor de coincidencias no encuentre más coincidencias, es decir, hasta el final de la cadena o grupo de cadenas dado.

m

Coincidencia de varias líneas, es decir, línea por línea.

x

Le dice al motor que ignore los espacios en blanco al hacer coincidir.

X

Esto se utiliza para emparejamientos extendidos.

 s

Esto coincide con una sola línea.

 i

Esto se utiliza para coincidencias que no distinguen entre mayúsculas y minúsculas.

 u

Para caracteres Unicode.

anclas

Instrucciones adicionales para el motor en cuanto a posiciones.

Tokens

Sentido

^

Esto denota el comienzo de una cadena.

\A

Esto también denota el comienzo de una cadena.

\Z

La ficha del final de una cadena.

\z

El token para el final absoluto de una cadena.

 \G

Esto es para el inicio de un partido.

Expresiones regulares de uso común

Las expresiones regulares se utilizan ampliamente en Internet. Desde las validaciones de formularios hasta la búsqueda de datos que contienen una palabra clave o palabras clave en particular, las expresiones regulares son casi inseparables de las aplicaciones informáticas modernas.

Veamos algunos ejemplos familiares del uso de expresiones regulares.

Coincidencia de un número de teléfono

Veamos cuál es el patrón de un número de teléfono utilizado en la India. El código de país es lo primero. Usualmenteally contiene un carácter "+" seguido del número 91, que es el código de país de la India. Además, los números de teléfono indios generanally comience con 6, 7, 8 o 9. A esto le siguen otros 9 dígitos.

Entonces, una expresión regular válida para un número de teléfono celular indio sería la dada.

^(\+91[\-\s]?)?[0]?(91)?[6-9]\d{9}$

Probando la fuerza de las contraseñas

La mayoría de los sitios web nos recomiendan proporcionar una sólida la contraseña que contiene una combinación de números, caracteres en mayúsculas y minúsculas y símbolos. Además, debe haber un número mínimo de caracteres: 6 u 8. Esto se hace para que la contraseña sea muy difícil de descifrar.

Cualquier contraseña que siga esta regla puede ser generada.ated o válidoated para seguridad de la contraseña usando una expresión regular.

^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})

Coincidencia de URL

Las URL son la forma más común de utilizar Internet y visitar rápidamente la página web que queremos. Casi todos los sitios web tienen una URL. Por lo tanto, cada URL está estandarizada y sigue un patrón definido. Cada URL sigue el protocolo HTTP o HTTPs seguido de ": //"Y el"www" a menudo. Luego, el nombre del sitio web seguido de .com o .net u .org, etc.

Para probar la validez de una URL, podemos usar una expresión regular como la que se muestra a continuación.

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

Date y formatos de hora

Date y los formatos de hora también se utilizan con mucha frecuencia en la web. Hay muchos formatos de d.ateEs utilizado por una variedad de aplicaciones, software o sistemas. Dates siempre debe usarse en un formato que lo haga usable para el usuario o la aplicación que intenta leerlo.

⚜️ Símboloate en el formato dd-MM-aaaa puede ser válidoated utilizando una expresión regular que puede ser como se indica a continuación.

^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$

Ahora, exploremos algunos de los herramientas de expresiones regulares en línea que puede ser útil para construir y solucionar problemas.

Si desea obtener más información sobre las expresiones regulares, sus ejemplos y usos avanzados, aquí hay una lista de sitios web a los que siempre puede consultar:

Regex101

Regex101 es una excelente guía de referencia y una herramienta interactiva para crear sus expresiones regulares, puede ayudarlo a comenzar con expresiones regulares muy rápidamente.

Con esto, podemos probar RegEx para los siguientes idiomas.

  • PCR (PHP)
  • ECMAScript (JavaScript)
  • Python
  • vamos

Proporciona soporte para las funcionalidades de RegEx como una coincidencia, sustitución y pruebas unitarias. Aparte de esto, se puede guardar la antigua expresión regular probada.

Formateador libre

Formateador libre está basado en JavaScript y utiliza la Biblioteca XRegExp para funciones mejoradas. facilitaateEstá probando una expresión regular contra una coincidencia y reemplazando una coincidencia. Admite las siguientes banderas, que se pueden usar según los requisitos al probar una expresión regular

  • i - No distingue entre mayúsculas y minúsculas
  • m - Multilínea
  • g - Global (no te detengas en el primer partido)
  • s - El punto coincide con todos INCLUYENDO los saltos de línea (solo XRegExp).

Regex Crucigrama

Si Regex y acertijos le interesan, este es el página web ir a. Tiene una serie de divertidos e interactivos rompecabezas. Definitivamente te ayudarán a aprender más sobre las expresiones regulares.

  • Optimizado para teléfonos y para resolver acertijos de RegEx sobre la marcha.
  • Un tutorial paso a paso, que le enseña los diferentes símbolos y patrones RegEx.
  • Inclina tu mente alrededor de los rompecabezas cubistas de RegEx de palíndromos 2D.
  • Amplia gama de acertijos de RegEx con dificultades desde principiantes hasta expertos.

RegExr

RegExr es un sitio web para ensuciarse las manos con Regex. Puede escribir expresiones regulares, hacer coincidir patrones y divertirse con este equivalente de Codepen para expresiones regulares.

Caracteristicas

  • Soporta JavaScript y PHP / PCRE RegEx.
  • Resultados actualizadosate en tiempo real mientras escribes.
  • Pase el cursor sobre una coincidencia o expresión para obtener más detalles.
  • Válidoate patrones con conjuntos de pruebas.
  • Guarde y comparta expresiones con otros.
  • Referencia completa de expresiones regulares con ayuda y ejemplos.

Pythex

Es un probador de expresiones regulares basado en Python. Pythex es una forma rápida de probar sus expresiones regulares de Python. Viene con cuatro banderas a saber

  • Ignorar caso
  • Multilínea
  • PuntoTodo
  • Verboso

rubular

rubular es un editor de expresiones regulares basado en Ruby. Es compatible y utiliza el Ruby 2.5.7 versión en adelante.

Debuggex

Está basado en JavaScript y admite RegEx para Python y expresiones regulares compatibles con Perl (PCRE). Usando esto herramienta en línea podemos incrustar nuestra expresión regular en StackOverflow. Proporciona la posibilidad de compartir el resultado de la expresión regular mediante la creación de un vínculo único con cada prueba de expresión regular.

ExtiendeClase

ExtiendeClase es una herramientabox para desarrolladores. Proporciona soporte para pruebas RegEx para los siguientes idiomas.

  • JavaScript
  • Pitón (3.4)
  • Ruby (2.1)
  • Java (JDK14)
  • PHP (7)

Probador de expresiones regulares

Esta probador de expresiones regulares gratis le permite probar sus expresiones regulares con cualquier entrada de su elección y resalta claramente todas las coincidencias. Con esto, podemos guardar la antigua expresión regular probada para referencia futura. Además, es compatible con JavaScript y PCRE RegEx.

Kit de herramientas web

Kit de herramientas web contiene un conjunto de herramientas de utilidad, RegEx tester es una de ellas. Podemos ingresar nuestra expresión regular aquí y probarla con un valor. También proporciona la posibilidad de reemplazar, hacer coincidir y copiar las expresiones. Aparte de esto, proporciona una toggle para realizar una coincidencia global y que distinga entre mayúsculas y minúsculas.

Recursos para el Aprendizaje

Si desea aprender RegEx, estos son algunos de los mejores cursos disponibles en línea.

Coursera

Coursera ofrece interesantes cursos de proyectos guiados que le brindarán experiencia práctica en el uso de RegEx. La mayoría de estos cursos de proyectos duran aproximadamente una hora y trabajará paso a paso junto con el instructor. Estos son algunos de los mejores proyectos RegEx.

Udemy

Udemy ofrece un Curso completo de RegEx para principiantes que te enseña los conceptos básicos en 3.5 horas y un Curso Python RegEx con proyectos que le brindará experiencia práctica en el uso de RegEx para validación de entradas, datos processing y transformación.

Para Concluir

Aprendimos las expresiones regulares, algunos ejemplos comunes y algunos de los herramientas de prueba. Con este conocimiento, podemos crearate nuestras expresiones regulares y utilizarlas en nuestras aplicaciones.

Comparte en:
  • Asad Ali
    Autor
    Asad es un desarrollador back-end y le encanta escribir sobre growing tecnologías como Kafka, AWS, Docker, NoSQL y API.

Gracias a nuestros patrocinadores

Más lecturas interesantes sobre el desarrollo

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a su negocio grow.
  • La herramienta de conversión de texto a voz que utiliza IA para generarate Voces realistas parecidas a las humanas.

    Intente Murf AI
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder