Si utilizas DataFeedWatch, seguramente ya te hayas encontrado con el término «RegExp» en las opciones de asignación. En esta entrada, queremos explicarte cómo puedes utilizar las RegExp en nuestra aplicación. Pero antes de nada, dejemos claro qué son exactamente las RegExp.
Una expresión regular (RegExp para abreviar) es una cadena de texto especial para describir un patrón de búsqueda. Digamos que las expresiones regulares son como comodines a la máxima potencia. Probablemente ya conozcas caracteres comodín como «*.txt», que se utiliza para buscar archivos de texto en un administrador de archivos. Las expresiones regulares funcionan con estos mismos principios pero son capaces de hacer mucho más.
Es cierto que acostumbrarse a las RegExp requiere algo de práctica, pero una vez dominadas, resultan de gran utilidad. Si te interesa aprender más sobre expresiones regulares, te recomiendo echarle un vistazo a este tutorial.
También es una buena idea comprobar las expresiones regulares antes de aplicarlas. Existen muchas herramientas online para hacerlo. La que nosotros utilizamos se llama Rubular.
Ahora veamos ejemplos reales para descubrir cómo podemos utilizar las RegExp en la optimización del feed.
Pongamos que necesitas crear un campo de «color» para el feed de Google Shopping. No tienes establecido un campo para el color, pero sabes que todos los títulos de tus productos terminan con el nombre de un color (por ejemplo, Adidas Zapatillas Running Snova Glide 5 Verde).
La mejor manera de hacer frente a esta situación es asignar el color del nombre y utilizar una regla de reemplazo adicional con expresiones regulares como esta:
Funciona de la siguiente manera:
El resultado para el título de producto «Adidas Zapatillas Running Snova Glide 5 Verde» sería «Verde».
Imaginemos que creas un campo de precio para un canal que acepta únicamente 2 dígitos decimales (por ejemplo, 12.45) y tus precios tienen 4 (12.4500). Una vez más, la regla de reemplazo con expresiones regulares te puede ser de gran utilidad. Para ajustar el formato, necesitamos configurarlo de la siguiente manera:
Al igual que en el ejemplo anterior, esta regla:
El resultado para la cifra 12.4500 sería «12.45».
Cabe señalar que, de esta manera, no se redondea el precio, sino que se elimina directamente los dos últimos dígitos decimales.
Supongamos que deseas establecer la categoría «product_type» como categoría principal de tus artículos (pongamos que son piezas de automóvil) en Google Shopping. Sin embargo, tu sistema solo tiene las rutas de categorías completas (por ejemplo, Piezas de automóvil > BMW> 320i> 2013).
En este caso, lo que debes hacer es eliminar todo lo que haya a partir de «>». La regla sería la siguiente:
donde aparezca
s>.* => cualquier carácter único seguido de «>» seguido de cualquier carácter único, independientemente del número de veces que aparezca.
El resultado sería «Piezas de automóvil», en lugar de «Piezas de automóvil> BMW> 320i> 2013».
Para el último ejemplo, imaginemos que deseas utilizar un canal que requiere números UPC, pero que en tu sistema no todos los productos disponen de dicho número o que no todos los UPC se ajustan adecuadamente al formato de 12 dígitos. Si utilizas un feed en el que los UPC están vacíos o son incorrectos, el canal lo rechazará por completo. Lo que debes hacer es excluir dichos productos. Puedes conseguirlo mediante una única regla de exclusión y utilizando adivina qué... ¡expresiones regulares!
Lo que debes hacer es incluir únicamente aquellos productos cuyos UPC tengan exactamente 12 dígitos. En otras palabras, incluye los productos solo si el UPC coincide con la expresión regular ^[0-9]{12}$
Estos son solo algunos ejemplos de cómo puedes utilizar las expresiones regulares. Como norma general, siempre que se deba hacer una asignación compleja, las RegExp son tus mejores amigas.
Si tienes alguna duda o problema, déjanoslo en los comentarios e intentaremos encontrar una expresión regular adecuada para solucionarlo (si es posible).