¿Qué son las expresiones regulares (regex) y cómo usarlas en las pruebas A/B?
Publicado: 2021-10-26Las expresiones regulares (o regex) pueden ser una herramienta poderosa en el arsenal de cualquier practicante de CRO.
Sin duda, muchos científicos de datos, analistas y otros se han encontrado con ellos en algún momento de sus carreras. Pueden ser difíciles para quienes no tienen conocimientos técnicos, ¡pero dominar estos útiles patrones es una forma segura de mejorar su programa de experimentación!
En esta publicación de blog, intentaremos desmitificar las expresiones regulares para que pueda comenzar a usarlas con confianza en sus pruebas.
Comenzaremos analizando la estructura y los diferentes tipos de expresiones regulares. Luego le mostramos algunos ejemplos de expresiones regulares que podría querer usar y cómo implementar estos patrones en varias partes de las pruebas A/B. Finalmente, analizamos algunas formas en que se pueden usar en la aplicación Convert Experiences.
- ¿Qué es la expresión regular?
- ¿Cómo puede escribir, probar y depurar expresiones regulares?
- Cómo escribir expresiones regulares
- Caracteres básicos de expresiones regulares
- cuantificadores
- Caracteres especiales
- Clases de personajes
- Caracteres básicos de expresiones regulares
- Cómo probar expresiones regulares
- Cómo depurar expresiones regulares
- Cómo usar expresiones regulares en JavaScript
- Método 1 Ejemplo
- Método 2 Ejemplo
- Cómo escribir expresiones regulares
- ¿Por qué necesitamos expresiones regulares en las pruebas A/B?
- ¿Cómo usar Regex en las pruebas A/B?
- Caso de uso de Regex: interfaz de expresiones regulares de Convert con Checker
- Cómo usar expresiones regulares en la aplicación Convert Experiences (con ejemplos)
- 1. Área del sitio con Regex
- 2. Audiencias con Regex
- 3. Metas con Regex
- 4. Regex en sitios web activos
- Errores comunes que se deben evitar al usar Regex
- 1. Incluyendo los Caracteres de Inicio y Final
- 2. Incluir una barra diagonal
- 3. Exceder el límite de caracteres
- 4. Ejecutar experimentos simultáneos en la misma página
¿Qué es la expresión regular?
Las expresiones regulares son como un lenguaje en miniatura que se usa ampliamente, lo que permite a las personas unir patrones complejos que, de lo contrario, les llevarían muchas horas de investigación.
Tienen una estructura alfanumérica y vienen con su propio conjunto de símbolos como corchetes { } paréntesis ( ), asteriscos (*), signos de interrogación (?), corchetes de apertura ([) corchetes de cierre (]), etc.
Si está un poco familiarizado con la expresión regular a continuación, este es el artículo adecuado para usted.
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[az]{2,6}\b( [-a-zA-Z0-9@:%_\+.~#()?&//=]*)/
¿Cómo puede escribir, probar y depurar expresiones regulares?
Ahora, vamos a mostrarte lo que es posible con las expresiones regulares. ¡Primero, vamos a echar un vistazo a algunas formas en que puede crear sus propias expresiones regulares complejas desde cero!
Cómo escribir expresiones regulares
Para construir su primera expresión regular, debe usar una sintaxis específica, es decir, caracteres especiales (metacaracteres) y reglas de construcción. Por ejemplo, la siguiente es una expresión regular simple que coincide con cualquier número de teléfono de 10 dígitos, en el patrón nnn-nnn-nnnn:
\d{3}-\d{3}-\d{4}
Puede comenzar a escribir la sintaxis específica usted mismo (y cometer muchos errores hasta que tenga un patrón de expresiones regulares validado) o usar uno de los generadores de expresiones regulares disponibles que existen. Uno de los más fáciles de usar y fáciles de usar es Regex Generator.
Simplemente pegue una muestra de texto que desee hacer coincidir usando una expresión regular (como ejemplo, utilicé la URL de Convert www.convert.com a continuación) y luego, seleccione diferentes partes del texto en las que desea construir la expresión regular.
¡Eso es todo! Tan sencillo.
El patrón de expresiones regulares está listo para ser utilizado:
w+\.[a-zA-Z]+\.com
Otro ejemplo podría ser ingresar una dirección de correo electrónico de soporte y especificar la parte del dominio de la dirección para construir la expresión regular en:
La expresión regular está lista para usted y ahora puede apuntar a todas las direcciones de correo electrónico de soporte de las herramientas que usa sin tener que copiarlas y pegarlas una por una:
soporte@[a-zA-Z]+\.com
Si eres más experto en tecnología y quieres escribir ese patrón tú mismo, puedes comenzar a aprender los caracteres y cuantificadores básicos, además de algunas reglas de construcción.
Caracteres básicos de expresiones regulares
Aquí hay una "hoja de trucos" rápida para aquellos de ustedes que quieren aprender las reglas más comunes de expresiones regulares.
cuantificadores
Entonces, ¿qué pasa si quieres hacer coincidir varios personajes? Necesitas usar un cuantificador. Los cuantificadores más importantes son *?+. Puede que te resulten familiares, pero no son exactamente iguales.
- * coincide con cero o más de lo que viene antes.
- ? coincide con cero o uno de lo que viene antes.
- + coincide con uno o más de lo que viene antes.
Caracteres especiales
Hay muchos caracteres especiales disponibles para la creación de expresiones regulares. Estas son algunas de las más frecuentes:
. | El punto coincide con cualquier carácter individual. |
\norte | Coincide con un carácter de nueva línea (o combinación CR+LF). |
\t | Coincide con una pestaña (ASCII 9). |
\d | Coincide con un dígito [0-9]. |
\D | Coincide con un no dígito. |
\w | Coincide con un carácter alfanumérico. |
\W | Coincide con un carácter no alfanumérico. |
\s | Coincide con un carácter de espacio en blanco. |
\S | Coincide con un carácter que no es un espacio en blanco. |
\ | Use \ para escapar de los caracteres especiales. Por ejemplo, \. coincide con un punto y \\ coincide con una barra invertida. |
^ | Coincide con el principio de la cadena de entrada. |
ps | Coincidencia al final de la cadena de entrada. |
Clases de personajes
Puede agrupar caracteres colocándolos entre corchetes. De esta forma, cualquier carácter de la clase coincidirá con un carácter de la entrada.
[a B C] | Coincide con cualquiera de a, b y c. |
[Arizona] | Coincide con cualquier carácter entre a y z. (orden ASCII) |
[^ abc] | Un signo de intercalación ^ al comienzo del corchete indica "no". En este caso, haga coincidir cualquier cosa que no sea a, b o c. |
[+*?.] | La mayoría de los caracteres especiales no tienen significado dentro de los corchetes. Esta expresión coincide literalmente con cualquiera de +, *, ? o el punto. |
¿Necesita ayuda para construir sus expresiones regulares?
Si no está familiarizado con las expresiones regulares y desea obtener más información, ¡le recomendamos encarecidamente que tome un curso intensivo rápido! Regex es una herramienta poderosa que solo requiere una pequeña inversión de tiempo para aprender.
Cómo probar expresiones regulares
Ahora tiene listo su patrón de expresión regular, pero le gustaría probar si la sintaxis es correcta. Puedes hacerlo manualmente y pasar muchas horas leyendo las reglas de validación. Mathias Bynens tiene un excelente artículo sobre la mejor comparación de muchas expresiones regulares: En busca de la expresión regular de validación de URL perfecta. Esa es la manera loca de avanzar.
Pero afortunadamente, hay muchos validadores de expresiones regulares en línea gratuitos que puede aprovechar y probar rápidamente sus cadenas con el patrón de expresiones regulares que creó. Podemos recomendar dos de ellos, RegEx101 y RegExr. Las capturas de pantalla a continuación son de este último, pero siéntase libre de usar cualquiera con el que se sienta más cómodo.
Simplemente agregue su patrón de expresiones regulares en el campo Expresión, luego, en el campo Texto, agregue cualquier texto que le gustaría ver si coincide con su patrón. Puede ver sobre la marcha cuántos de los textos que ingresó coinciden con el patrón específico.
¡Estos validadores de expresiones regulares son muy poderosos!
Cómo depurar expresiones regulares
Probar su expresión regular es mucho más importante que depurarlo. Por lo general, puede averiguar qué está pasando con una expresión regular con bastante facilidad mirando el resultado, pero para asegurarse de que hace lo que quiere, debe probar su expresión regular con todos los casos de borde posibles. Las pruebas eventualmente aclararán lo que realmente quieres hacer y harán que la depuración sea inútil.
Sin embargo, si aún desea depurar su patrón de expresión regular, puede escribirlo en https://regex101.com/. No solo le permite probar sus expresiones regulares en un conjunto de muestra, codificando por colores sus grupos de coincidencia, sino que también le brinda una explicación completa de lo que sucede debajo del capó.
Sin embargo, tenga en cuenta que deberá consultar la documentación específica para el lenguaje de programación particular en el que está utilizando la expresión regular. Cada uno tiene sus restricciones particulares. Es posible que algunas cosas no se admitan en un idioma en particular.
Si desea una experiencia más de "depuración visual", pruebe Debuggex.
Muestra caminos en su expresión regular como este:
Cómo usar expresiones regulares en JavaScript
Hay dos formas de crear una expresión regular en JavaScript. Se puede crear con el módulo RegExp o usando barras diagonales ( / ) para encerrar el patrón. Las barras /…/ le dicen a JavaScript que estamos creando una expresión regular. Desempeñan el mismo papel que las comillas para cadenas.
En ambos casos, regexp se convierte en una instancia del módulo RegExp incorporado.
La principal diferencia entre estas dos sintaxis es que el patrón que usa barras /…/ es completamente estático mientras que el otro puede generar expresiones regulares sobre la marcha.
Método 1 Ejemplo
Veamos el siguiente ejemplo de RegExp utilizado para validar la entrada del usuario y garantizar que su entrada contenga solo números:
let num = 'yo'; let expresión regular = new RegExp('[0-9]'); consola.log(regex.test(num)); // esto dará como resultado falso
Método 2 Ejemplo
Veamos una expresión simple con la notación literal que buscará una coincidencia exacta en una cadena. Esto coincidirá con la cadena, realizando una búsqueda sensible a mayúsculas y minúsculas:
let re = "Hola Estudia esta noche"; let resultado = /hola/.test(re); consola.log(resultado); // emite falso
Después de escribirlas, existen dos métodos interesantes para probar las expresiones regulares de JavaScript:
- RegExp.prototype.test(): para probar si se ha encontrado una coincidencia o no. Acepta una cadena que probamos contra una expresión regular. Devolverá verdadero o falso si se encuentra la coincidencia.
- RegExp.prototype.exec(): Devuelve una matriz con todos los grupos coincidentes. Acepta una cadena que probamos contra una expresión regular.
En el siguiente ejemplo, el patrón /JavaScript/ se compara con la cadena para ver si se encuentra una coincidencia:
var re = /JavaScript/; var cadena = "JavaScript"; if (re.test(str)) document.writeln("true");
En el siguiente fragmento de código, el método RegExp, exec, busca un patrón específico, /javascript*/, en toda la cadena (g), ignorando las mayúsculas y minúsculas (i):
var re = /javascript*/ig; var str = "cfdsjavascript *(&Yjavascriptjs 888javascript"; var resultArray = re.exec(str); while (matriz de resultados) { document.writeln(resultArray[0]); resultadoArray = re.exec(str); }
¿Por qué necesitamos expresiones regulares en las pruebas A/B?
Regex en las pruebas A/B se utiliza principalmente para la orientación. La orientación controla el quién y el dónde de cualquier experiencia.
A través de la orientación, le está diciendo a su plataforma de prueba a quién (qué condiciones del visitante del sitio web) debe mostrar la experiencia y dónde (qué URL específicas) debe ejecutarse la experiencia en su sitio.
Al definir las audiencias, puede decidir quién verá la experiencia. Las condiciones de audiencia pueden definir fuentes de tráfico, datos geográficos, datos de comportamiento, cookies específicas que tienen tus visitantes y un sinfín de condiciones que puedes especificar tú mismo.
Al definir la orientación de URL, usted decide dónde se ejecutará la experiencia. Las condiciones de orientación de URL pueden incluir varios dominios, subdominios, parámetros de consulta y rutas.
A veces, simplemente no es factible utilizar los operadores de "coincidencia exacta" o "contiene" o "comienza con" para segmentar el tráfico a sus experiencias. Aquí es donde entran las expresiones regulares.
Estas son 5 audiencias de muestra que pueden excluirse o incluirse en una experiencia y definirse con expresiones regulares :
- Visitantes provenientes de campañas publicitarias que tienen un término común en sus nombres pero difieren en el resto (ej. zapatos-compras-móvil, anillos-compras-escritorio).
- Visitantes que utilizan una versión específica del navegador (por ejemplo, Firefox 3.6.4).
- Visitantes que provienen de un sitio de terceros como Facebook o TikTok donde debe definir específicamente un grupo de nombres.
- Visitantes que han visto previamente una promoción.
- Los visitantes que han iniciado sesión y sus cookies para controlar la función de inicio de sesión tienen un identificador único.
Estas son 5 ubicaciones de muestra que quizás desee incluir o excluir de una experiencia y se pueden definir con expresiones regulares :
- Páginas con valores de cadena de consulta únicos/dinámicos.
- Páginas de destino específicas con términos comunes pero identificadores únicos.
- Páginas de categorías y subcategorías.
- Múltiples páginas en el embudo de pago mientras los visitantes pasan de un paso al siguiente.
- En todas partes excepto en algunas páginas.
¿Cómo usar Regex en las pruebas A/B?
Las expresiones regulares son útiles en cualquier experiencia A/B/MVT/Personalización/A/A/Multipágina/URL dividida que se beneficie de coincidencias de patrones de URL parciales o totales.
Podemos usar expresiones regulares en las pruebas A/B para:
- verificar la estructura de una URL
- extraer subcadenas de URL estructuradas
- buscar/reemplazar/reorganizar partes de la URL
- dividir una URL en tokens
- encontrar una parte constante de la URL.
Todos estos surgen regularmente al redactar una experiencia Convert.
Las coincidencias de expresiones regulares son útiles cuando la ruta, los parámetros finales o ambos pueden variar en las URL de la misma página web.
Por ejemplo, si un usuario proviene de uno de muchos subdominios y sus URL usan identificadores de sesión, podría usar una expresión regular para definir el elemento constante de su URL. Bastante útil, ¿verdad?
En Convert, usamos expresiones regulares (abreviadas como regex y regexes ) para permitirle orientar sus experiencias a un conjunto específico de páginas o a URL que son complejas o dinámicas. También se usa para definir audiencias con múltiples variables que tienen algo en común, lo que le permite dirigirse a visitantes específicos del sitio web y en varios otros casos de uso que presentamos a continuación.
Hay mucha información sobre las expresiones regulares en Internet y mucha de ella no es realmente aplicable a cómo las usará con Convert Experiences, por lo que hemos creado esta guía de expresiones regulares para ayudarlo a comenzar.
Caso de uso de Regex: interfaz de expresiones regulares de Convert con Checker
Hay muchos probadores/validadores de expresiones regulares que puede usar antes de traer sus fórmulas y patrones a la interfaz de usuario de Convert.
Hemos diseñado una sección de expresiones regulares (ver a continuación) para que sea sencillo para los usuarios no familiarizados escribir sus propias fórmulas de expresiones regulares y validarlas con nuestro verificador.
Las coincidencias de expresiones regulares se evalúan luego mediante el módulo Regular RegExp incorporado de JavaScript.
Estos son algunos ejemplos de cómo se ve el verificador en diferentes lugares de la aplicación:
Cómo usar expresiones regulares en la aplicación Convert Experiences (con ejemplos)
Ahora, repasemos cada uno de estos casos de uso y veamos algunos ejemplos de casos en los que las expresiones regulares son inmensamente útiles.
1. Área del sitio con Regex
El Área del sitio es el lugar dentro de la aplicación Convert Experiences donde configura los criterios de orientación de la página que desencadenan sus experiencias.
La configuración de URL más básica activa el experimento en función de una URL, por ejemplo: "https://www.convert.com".
Esta configuración se configura automáticamente cuando crea su experimento por primera vez. Y se establece en la URL que ingresa para crear su Experimento A/B / Experimento MVT / Personalización o la URL original en un Experimento de URL dividida.
Sin embargo, puede cambiar esta configuración predeterminada seleccionando uno de los varios operadores que proporciona el Área del sitio para activar su experiencia.
Uno de los operadores se llama "Coincide con Regex" y otro se llama "No coincide exactamente con Regex".
Puede usar estas dos opciones para definir las páginas en las que desea ejecutar sus experiencias Convert cuando ningún otro operador puede ser útil para aplicar la configuración de URL que desea.
¡Veamos algunos casos de uso para que esto sea más fácil de entender!
Ejemplo 1
Supongamos que desea ejecutar una experiencia con estas dos condiciones:
- Fuente de tráfico = Google Adwords
- La URL contiene prg=ABTEST
Así es como escribiría la expresión regular en su área de sitio:
https://convert.com/\?(?=.*utm_source=google)(?=.*prg=ABTEST).*
Ejemplo 2
Supongamos que desea comparar 3 páginas de destino con una variante.
Las páginas de aterrizaje son:
- https://www.convert.com/lp-home
- https://www.convert.com/lp-home-agencies
- https://www.convert.com/lp-home-clientes
siendo la variante https://www.convert.com/lp-semhome/desktop
En este ejemplo, escribiría la expresión regular en su área de sitio de esta manera:
https:\/\/www.convert.com\/lp-home(\/|-agencias|-clientes|)
Ejemplo 3
Ahora, imaginemos que sus colegas le piden que configure una experiencia donde:
- El tráfico al original debe ser 0
- El parámetro de consulta contiene utm_bucket=competitor
- El tráfico se divide 50/50 entre las dos variantes, por lo tanto, cuando el tráfico llega a https://convert.com/?utm_bucket=competitor, el 50% del tráfico va a https://convert.com/vs-offerpad/ y el otro 50% va a https://convert.com/vs-zillow/
En este caso, la expresión regular se vería así:
https://www.convert.com/([^\?]+)?\?{0,1}(.*)([&,\?]utm_bucket=competidor)(.*)$
Ejemplo 4
Otro caso podría ser que desee probar las siguientes condiciones:
- La URL de la página debe contener /colecciones/
- La URL de la página no debe contener /productos/
- La URL de la página no debe coincidir exactamente: https://convert.com/collections/
- El parámetro de consulta de URL no debe contener ?v=t
- La URL original podría ser cualquier página de las colecciones.
Aquí, debe combinar expresiones regulares con audiencias para cumplir con todas las condiciones. Por lo tanto, la expresión regular en su Área de sitio se verá así:
Y no olvide definir la audiencia para excluir a los visitantes que tienen ?v=t en su URL.
https://www.convert.com/collections/(?!(.*\/)productos)(.*)([^\?]+)?\?{0,1}(.*)$
Ejemplo 5
En este último ejemplo, supongamos que desea ejecutar una experiencia de URL dividida donde, cuando el tamaño de la tienda se incluye en la URL, desea ejecutar la prueba y dividir el tráfico entre el original y la variante.
1. El original puede ser cualquiera de los siguientes:
https://convert.com/products/shop-size
https://convert.com/collections/new-products-deals/products/shop-size
https://convert.com/collections/fitting/products/shop-size
2. La URL de variación podría verse así: https://convert.com/products/the-original-fittings
Aquí, esta será su expresión regular:
2. Audiencias con Regex
Otra sección donde puede aprovechar las expresiones regulares en la aplicación Convert Experiences es Audiencias.
Una audiencia es un grupo de usuarios/visitantes del sitio web que tienen algo en común. Con las audiencias, clasifica a los visitantes de su sitio web en grupos según criterios específicos, como la ubicación, el dispositivo utilizado para acceder al sitio, la hora del día, su página de destino o cualquier otro comportamiento del usuario.
Es probable que los visitantes de un subgrupo diferente se comporten o compren de la misma manera. Puede crear audiencias especificando las condiciones que permiten a Convert decidir para qué audiencia es elegible un visitante y ejecutar la prueba o variación correcta.
Solo admitimos expresiones regulares en uno de los 3 tipos de audiencia que ofrecemos, Segmentación.
Cuando selecciona este tipo de audiencia, estas condiciones pasan a estar disponibles:
Ejemplo
Supongamos que desea ejecutar una experiencia dirigida a los visitantes del sitio web cuya página de destino consiste en un término común como "productos". En este caso, seleccionaría la condición "URL de página" de la lista de la izquierda y luego "Coincide con Regex" como su operador.
¡Y listo!
3. Metas con Regex
Para realizar un seguimiento de las conversiones de objetivos de sus experiencias, debe especificar las URL de la página donde desea registrar la conversión. Convert Experiences le permite ingresar direcciones URL específicas, patrones de página o expresiones regulares (regex) de las páginas en las que desea registrar la conversión de objetivos.
Ejemplo
Digamos que su objetivo es verificar cuántos usuarios acceden a una página particular de su sitio web.
En este caso, debe definir el tipo de objetivo como "Visita una página específica" e ingresar la URL de la página que los usuarios deben visitar para registrar la conversión:
Y así es como se ve tu expresión regular:
https://convert.com/$1/privacidad/?$3
4. Regex en sitios web activos
Convert admite comodines en la configuración de "Sitios web activos".
Por ejemplo, si desea incluir todos los subdominios en "dominio.com", debe configurar la entrada "Dominio activo" de esta manera: " http://*.dominio.com ".
Errores comunes que se deben evitar al usar Regex
No es suficiente definir su expresión regular para su orientación de URL una vez y luego ignorarla. Se requieren limpiezas y comprobaciones periódicas para garantizar que las páginas/públicos/objetivos correctos estén continuamente en los experimentos correctos.
Estos son los principales errores que a menudo vemos aparecer en nuestros tickets de soporte:
1. Incluyendo los Caracteres de Inicio y Final
Si incluye los caracteres de inicio y fin (^ y $), no se coincidirá con ninguna URL que incluya texto antes o después del patrón.
Evita usarlos.
Es muy común que las URL incluyan cadenas de consulta al final, como el parámetro UTM que se agrega a las URL con fines de seguimiento.
Un ejemplo de esto sería:
https://www.convert.com/?utm_campaign=anuncios
2. Incluir una barra diagonal
Una barra diagonal (/) al final de la URL generalmente es opcional.
Si su expresión regular incluye ese carácter al final, entonces una visita a la misma URL pero sin la barra diagonal no coincidiría. Es mejor no incluir ese último carácter de barra diagonal.
3. Exceder el límite de caracteres
Hay un límite de 750 caracteres para todas nuestras reglas de segmentación de expresiones regulares. Si supera este límite, no se generará ningún error para alertarlo sobre el problema (aunque creo que este límite no se puede alcanzar fácilmente).
4. Ejecutar experimentos simultáneos en la misma página
Si intenta ejecutar varios experimentos en la(s) misma(s) página(s) simultáneamente, esto conduce a una colisión en cuanto a en qué experimento debe participar un visitante y qué cambios se deben aplicar primero.
Debido a esto, debe tener cuidado con la orientación de URL de expresiones regulares. Si orienta la misma página con las reglas de orientación de más de una prueba A/B, debe usar estas instrucciones para evitar la colisión.
Si está buscando ayuda para comprender las expresiones regulares o con la orientación de URL de sus Experiencias Convert, nuestro equipo de soporte está listo para responder sus preguntas. Puede comunicarse con nosotros en cualquier momento a través del chat en la aplicación. Estaremos encantados de proporcionarle una descripción general y mostrarle algunos ejemplos para que pueda comenzar a usar expresiones regulares con confianza en sus pruebas.