Las expresiones regulares (también conocidas como REGEX o REGEXP) te ayudan a encontrar URL o texto que coincidan con un patrón en particular.
💡REGEX es compatible en Site Explorer, Site Audit y ciertos puntos finales en nuestra API:
Obtén más información sobre dónde puedes usarlas.
Cómo funciona REGEX
Pasemos de los ejemplos más sencillos a los más avanzados.
La siguiente configuración incluye todas las URL que contienen la palabra "blog" y excluyen las URL que contienen la palabra "producto".
Esto enseña a nuestro bot a rastrear:
https://ahrefs.com/blog
https://ahrefs.com/blog/seo-techniques/
https://ahrefs.com/academy/blogging-for-busines
Y a ignorar:
https://ahrefs.com/blog/category/product-blog/
https://ahrefs.com/blog/ecommerce-out-of-stock-products/
Ha sido fácil, ¿verdad?
Pero ¿qué pasa si quieres incluir las URL de /blog/subcarpeta específicamente, pero no https://ahrefs.com/academy/blogging-for-business
?
Puedes usar un patrón un poco más avanzado:
Probablemente te preguntes qué son esos símbolos delante y detrás de "blog".
En la expresión regular, tienes que "escapar" algunos símbolos para que no sean reconocidos como caracteres especiales. Para ello, usa la barra invertida \
antes del carácter.
Un punto simple .
en expresión regular, por ejemplo, significa cualquier carácter; pero \.
funciona como un símbolo de punto. Por eso escapé el carácter de barra en el ejemplo anterior de la siguiente manera: \/
Cómo Ahrefs gestiona múltiples expresiones REGEX
Ten en cuenta que puedes aplicar múltiples patrones para incluir o excluir URL en la configuración de rastreo en Site Audit. Si no se encuentran coincidencias para una de las reglas, la regla se omitirá.
Las reglas anteriores enseñarán a nuestro rastreador a rastrear las URL que contienen las palabras:
"blog" o "producto"
Y no contiene las palabras:
"bloguear" o "productivo".
Para varias reglas de reescritura de las URL, cada nueva regla se ejecuta secuencialmente al resultado de la reescritura anterior.
Algunos tokens útiles de expresiones regulares
^
- este símbolo indica el inicio de la URL
$
- este símbolo indica el final de la URL
.
- el punto decimal indica cualquier carácter individual
*
- busca la expresión anterior 0 o más veces
+
- busca lo anterior 1 o más veces
?
- busca lo anterior 0 o 1 veces
|
- equivale a O.
[__]
- es similar a |, pero puede utilizarse para definir rangos
(__)
- los paréntesis agrupan la expresión regular entre ellos
\d
- busca un dígito
\D
- busca algo que no es un dígito
\w
- busca un carácter de palabra
\W
- busca a un carácter que no sea palabra
Diferentes herramientas y plataformas pueden estar usando diferentes librerías de expresiones regulares. Site Audit está usando RE2. Aquí encontrarás su sintaxis completa.
Algunos ejemplos prácticos
1. URL HTTPS en /wp-content/ subfolder
^https:.*\/wp-content\/
^
Indica el inicio de la URL. Esta regla buscará con todas las URL que comienzan con "https:" seguidas por entre 0 y cualquier número de caracteres .*
antes de "/wp-content/".
URL con el patrón:
https://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png
URL sin el patrón:
http://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png
2. URL en una subcarpeta, incluida la URL del directorio
\/blog(\/.*)?$
Esta regla buscará todas las URL que terminen $
con "/blog", opcionalmente seguido por la barra y con entre 0 y cualquier número de caracteres (\/.*)?
. El signo de interrogación en este patrón busca la expresión entre corchetes entre 0 y 1 vez, haciendo que sea opcional.
URL con el patrón:
https://ahrefs.com/blog
https://ahrefs.com/blog/301-redirects/
URL sin el patrón:
https://ahrefs.com/blogging
https://ahrefs.com/academy/blogging-for-business
3. URL que contienen los símbolos @ o %
@|%
o [@%]
|
y [__]
funcionan como O
URL con el patrón:
https://ahrefs.com/@timsoulo
https://ahrefs.com/%D1%81%D0%B5%D0%BE
URL sin el patrón:
https://ahrefs.com/blog/nofollow-links
4. URL "Añadir al carrito" en WooCommerce
\?add-to-cart=
Ten en cuenta que ?
es un símbolo especial en la expresión regular. Para usarlo como un simple signo de interrogación, no olvides escaparlo así: \?
URL con el patrón:
https://yourdomain.com/?add-to-cart=25
URL sin el patrón:
https://yourdomain.com/smartphones
5. URL que contienen un año (4 dígitos)
[0-9]{4}
o \d{4}
[0-9]{4}
buscará todas las URL que contienen cuatro {4}
dígitos [0-9]
seguidos
\d{4}
hace lo mismo que \d
, que representa un dígito
URL con el patrón:
https://yourdomain.com/best-smartphones-2019
URL sin el patrón:
https://yourdomain.com/smartphones
6. Todas las URL del subdominio (tanto http como https)
^https?:\/\/help.ahrefs.com
Esta regla buscará todas las URL que comienzan con "http://help.ahrefs.com" o "https://help.ahrefs.com".
El signo de interrogación en s?
indica que "s" es opcional, por lo que tanto http como https serán resultados con esta regla.
URL con el patrón:
https://help.ahrefs.com
http://help.ahrefs.com/
http://help.ahrefs.com/site-audit
URL sin el patrón:
https://ahrefs.com/site-audit
ftp://help.ahrefs.com
7. Varias URL de archivos
\.(jpg|gif|bmp|png|css|pdf)$
Esta regla buscará todas las URL que terminen $
con .jpg O .gif O .bmp O .png O .css O .pdf.
Puedes reducir esta expresión para buscar un número menor de extensiones. Por ejemplo, solo para URL que terminan $
con .jpg O .png solamente:
.*\.(jpg|png)$
Los paréntesis (__)
agrupan la expresión regular entre ellos y |
significa O
URL con el patrón:
https://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png
http://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png
URL sin el patrón:
https://ahrefs.com/site-audit
8. Con reglas de reescritura de URL para rastrear un sitio web provisional en Site Audit
Puedes utilizar las reglas de reescritura de las URL en la configuración de Site Audit para sustituir algunas partes de las URL con otro valor.
P. ej.: cuando su sitio web provisional está basado en un subdominio, como staging.ahrefs.com
Esta regla sustituirá "ahrefs.com" en cada URL por "staging.ahrefs.com"
9. Con reglas de reescritura de las URL con grupos de captura numerados
Con los grupos de captura, puedes reemplazar varias partes de la URL con una regla.
Patrón para buscar:
www\.ahrefs\.com([^\?|#]*)?([#]?[^\?]*)\??(.*)
Sustituir por:
www.ahrefs.com\1?parameter1=5273&\2?parameter2=7465&\3
([^\?|#]*)
es el primer grupo de captura
([#]?[^\?]*)
es el segundo grupo de captura
(.*)
es el tercer grupo de captura
\1?parameter1=5273&\2\3
sustituye el valor del primer grupo de captura por "?parameter1=5273
"
\2?parameter2=7465&
sustituye el valor para el segundo grupo de captura por "?parameter2=7465&
"
\3
inserta el valor que coincide con el tercer grupo de captura
6. Filtro para texto con más de 50 caracteres
^[\s\S]{50,}$
Recursos adicionales
Esperamos que con este artículo hayas aprendido algunos trucos útiles que puedes hacer con expresiones regulares.
Puedes probar si tu expresión regular funciona en este sitio web: https://regex101.com/. Ten en cuenta que debes seleccionar "Golang" en el menú de la izquierda.