Expresiones regulares
Las expresiones regulares son patrones que permiten a un bot validar el formato de la entrada del usuario; por ejemplo, para asegurarse de que la entrada sea un número de teléfono y no otra cosa.

Para comparar usando una expresión regular, debes establecer el tipo de coincidencia en "RegEx match".
¡Las expresiones regulares deben escribirse en el propio disparador, no en las variables usadas para la coincidencia!
Al recopilar datos, los usuarios a menudo ingresan algo distinto de lo que se les pide. Aquí hay un flujo típico para validar la entrada de un número de teléfono. Si el usuario no ingresa un número de teléfono válido, el bot le pedirá que lo intente de nuevo.

El bloque de entrada de número de teléfono tiene dos conexiones de salida: una sin ningún disparador y otra con un disparador que usa una expresión regular para coincidir con un número de teléfono.
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
Este flujo usa dos conexiones para manejar la validación del número de teléfono:
Conexión principal (número válido)
Disparador: Un número de teléfono con el formato correcto.
Acción: Agrega el número a la aplicación y continúa.
Conexión de respaldo (entrada no válida)
Prioridad: Más baja que la conexión principal.
Disparador: Cualquier entrada que no sea un número de teléfono válido.
Acción: Informa al usuario del error y lo redirige para que lo intente de nuevo.
Esto garantiza que el usuario solo avance después de proporcionar datos válidos, al mismo tiempo que recibe comentarios inmediatos sobre cualquier error.
Una lista de expresiones regulares útiles:
Entrada numérica solo dígitos que comienzan con 1: ^[1-9]+[0-9]*$
Entrada numérica solo dígitos que comienzan con 0: ^[0-9]+[0-9]*$
Número de tarjeta de crédito: [0-9]{13,16}
Número de teléfono general: ^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
Letras y números (Latín): ^[a-zA-Z0-9]+$
Dominio (p. ej., abcd.com): ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
URL (p. ej., abcd.com): (https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*
IPv4: ((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
IPv6: ((^|:)([0-9a-fA-F]{0,4})){1,8}$
Nombre de usuario (con un límite de 2 a 20 caracteres, que pueden ser letras y números, el primer carácter debe ser una letra): ^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$
Contraseña (Letras latinas minúsculas y mayúsculas, números): ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$
Contraseña segura (mayúsculas, minúsculas, números/caracteres especiales, mínimo 8 caracteres): (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
Fecha en formato AAAA-MM-DD: [0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01]) ACT. Validación de fecha más estricta: (19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31)
Fecha en formato DD/MM/AAAA: (0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
Fecha en formato DD.MM.AAAA: (0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)\d\d
Integer y números de punto flotante (punto como separador decimal) \-?\d+(\.\d{0,})?
UUID: ^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$
Latitud o longitud: -?\d{1,3}\.\d+
ACT. Correo electrónico: ^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$
ACT. URL ~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i
ACT. Hora en HH:MM:SS: formato ^([0-1]\d|2[0-3])(:[0-5]\d){2}$
ACT. Dirección MAC: ([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}
Hay una gran cantidad de expresiones regulares disponibles. Si no encuentras la que necesitas en esta lista, es una buena idea usar un motor de búsqueda.
Puedes probar cómodamente expresiones regulares en sitios web como: https://regex101.com/
Última actualización