lunes, agosto 8, 2022
InicioBlogGuía para principiantes de RegEx para SEOs

Guía para principiantes de RegEx para SEOs

Esta es una pequeña guía para la utilización de expresiones regulares o RegEx en SEO, útiles para detectar patrones en secuencias de caracteres en cadenas.

Los RegEx son fáciles de aprender y sorprendentemente útiles, así que asegúrate de seguir este tutorial completo porque será una de las mejores inversiones de tiempo versus resultados en tu aventura SEO.

Esta publicación es para ayudarte a aprender expresiones regulares. No todos los RegExes funcionarán en Google Search Console, ya que utiliza una sintaxis particular.

¿Qué son las expresiones regulares (regex)?

RegEx, o expresiones regulares, se utilizan para detectar patrones en secuencias de caracteres en cadenas.

Con RegEx, puede hacer coincidir fácilmente muchos resultados que tienen el mismo patrón.

Expresiones regulares básicas

.Cualquier carácter
.*0 o más caracteres
.+1 o más caracteres
?Carácter opcional
^Comienzo de una línea
$Final de una línea
\Escapar de un carácter especial

Por ejemplo, uno de los patrones más comunes que se pueden utilizar en Google Analytics es este:

.*sitio1.*|.*sitio2.*

o su equivalente:

.*sitio(1|2).*

De esta manera puedo hacer coincidir cualquiera de esos resultados:

#Coincidencia
sitio.com
sitio.fr
siteio2.es
www.sitio2.com
sitio2.es/url/
 
#No Coincidencia
www.google.com

RegEx no es específico de ningún lenguaje de programación. Entonces, ya sea que estés utilizando Google Analytics o programando en Python, JavaScript o Java, en algún momento necesitarás utilizar expresiones regulares.

Las expresiones regulares tienen diferentes sintaxis de un lenguaje de programación a otro. Es por ello que, si aprendes a utilizar expresiones regulares generales, no tendrás problemas para utilizarlas en cualquiera de los lenguajes de programación.

Comienza a utilizar RegEx

Esta guía lo llevará a través de los conceptos básicos de RegEx. Si quiere ir más allá, asegúrese de visitar una herramienta para desarrolladores, Regex101 , y esta web de trucos de RegEx .

No todos los RegEx son iguales

Las expresiones regulares se utilizan en la programación y el análisis de datos, y según el lenguaje de programación que utilizas o la herramienta que utilices, algunos RegEx no funcionarán.

¿Por qué aprender RegEx para SEO?

Los SEO comenzaron a utilizar Regex principalmente porque son usuarios ávidos de Google Analytics y el análisis de datos.

Luego, comenzaron a utilizarlo con fines de rastreo y extracción y, a medida que se progresa en el conocimiento de estas expresiones, comenzaron a implementarlo para desarrollar llamadas a la API.

Por ejemplo, para filtrar todo el tráfico orgánico procedente de Google, incluidos Google Search y Google images pero excluyendo Google CPC.

En este caso, iría a Acquisition > All Traffic > Source/Medium > Advanced y usaría la expresión regular .*google.*organic.*para filtrar los resultados.

filtro regex google analytics 2022 02 07 09.03.44

Sé que esto es bastante básico, pero solo quería mostrar por qué necesitará absolutamente expresiones regulares un día u otro en su carrera de SEO.

Las expresiones regulares en Google Analytics son bastante limitadas en comparación con lo que realmente puede hacer con Regex.

Fundamentos de las expresiones regulares

Profundicemos en los conceptos básicos de las expresiones regulares.

Emparejar caracteres

Para hacer coincidir uno o varios caracteres, puede usar banderas como acabamos de ver. También puedes utilizar comodines u otro conjunto específico de indicaciones.

.coincide con cualquier cosa. SE.coincidirá SEO y SEM
[aeiou]coincide con una de esas vocales. c[aio]ma coincidirá con cama, cima y coma. [aeiou] coincidiría con múltiples vocales
[a-z]coincide con una gama de caracteres. Esto coincidiría con cualquier carácter en minúscula del alfabeto. Para hacer coincidir cualquier carácter en mayúsculas y minúsculas, puede usar [a-z]\i o [a-zA-Z]
[0-9]coincide con un rango de números del 0 al 9. Puedes combinar el regEx para hacer coincidir números y letras como este: [2-5b-h]
^solo coincide si comienza con la cadena. ^SEO.* coincide con SEO es fácil pero no con me gusta el SEO
$solo coincide si termina con la cadena. .*regex$ coincide Iguia para principiantes de regex, pero no coincide regex para principiantes
Abogad?sdice que el carácter anterior «d» es opcional. Coincide Abogadas y abogados.

OR / And Lógica

Cuando necesitas incluir uno o más resultados o fusionar múltiples condiciones en tus expresiones regulares utilizar el OR lógico. Utilizando el | símbolo, podrás hacer coincidir múltiples condiciones.

Cuando necesite que TODAS las condiciones sean verdaderas, puede combinarlas usando una alternativa a un operador AND usando el patrón .*(?=.*pattern)(?=.*pattern).*

Por ejemplo:

python | seoCoincidencias: python O seo . Coincidencias: trabajos de Python, trabajos de SEO , Python para SEO
.*(?=.*python)(?=.*seo).*Coincidencias: python Y seo . Coincidencias: Python para SEO , SEO con Python pero no coinciden con trabajos de SEO

La sintaxis AND no es compatible con Google Analytics .

Tendrías que hacerlo de esta manera.

expresiones regulares google analytics 2022 02 11 16.29.54

Cuantificadores

Los cuantificadores, o especificadores de cantidad, son útiles para indicar el número de veces que desea repetir un carácter. Esto representa el número de veces que lo anterior puede coincidir.

Una o más veces+
Dos veces{2}
De tres a cinco veces{3,5}
Cero o más veces*
una vez o ninguna?

Conjuntos de caracteres negados

Cuando desees crear un conjunto de caracteres que no deseas que coincidan, debes utilizar negated character sets. Para crearlos, puedes utilizar el carácter de intercalación dentro de un juego de caracteres ( [^]).

  • [^]coincide con la cadena que no incluye. [^aieou] coincidir con un solo carácter que no está presente en la lista [aeiou];

Previsión positiva y negativa

Las búsquedas anticipadas son patrones que te indican que busques en la cadena para buscar los patrones que se especifique. Hay búsqueda anticipada positiva ( (?=)) y búsqueda anticipada negativa ( (?!)).

se(?=o) coincide con seo pero sem no coincide, mientras que se(?!o) no coincide con seo pero si con "se"

Emparejamiento codicioso y perezoso

En las expresiones regulares, una coincidencia greedy encuentran la parte más larga posible de una cadena que satisface la expresión regular. Un lazy partido es todo lo contrario. Encuentra la parte más pequeña posible de la cadena que coincide con la expresión regular.

.*es un emparejamiento codicioso ya que coincide con cualquier cosa. <.*> coincidirá con <h1>This is HTML</h1>
?es un emparejamiento perezoso. <.*?> coincidirá con <h1>

Agrupar elementos de un RegEx

Puedes agrupar elementos de un RegEx con paréntesis () en un elemento llamado grupo de captura.

  • diego.*(maradona|rivera) coincidiría con diego maradona y con diego rivera, pero no diego gutierrez.

Otra expresión regular útil

(?<=[\/])\d{2,} Coincide con cualquier ID numerado precedido por una barra invertida.

^\s+|\s+$ Selecciona todos los espacios en blanco al principio y al final de una cadena. Esto puede ser útil cuando se manipulan datos.

(?<=\.)(.*?)(?=\.) Te permite extraer un nombre de dominio. Esto coincidirá con cualquier cadena entre dos puntos.

(?<=string)(.*) Coincide con cualquier cosa después de una cadena, excluyendo esa cadena. Útil para limpiar URLs.

Flag (no aptas para GA o GSC)

Los Flags te ayudarán a determinar qué tipo de elemento combinar. Es posible que desees ignorar mayúsculas y minúsculas al hacer coincidir o hacer coincidir sólo palabras numeradas. Para hacer esto, deberás finalizar su expresión regular con una bandera como esta:

google\i

Coincide con google y Google.

Las banderas más útiles son:

\iignorar caso
\gcoincide más de una vez (JavaScript)
\dcoincide con un dígito del 0 al 9
\wcoincide con letras, dígitos o guiones bajos ASCII. Es lo mismo que [A-Za-z0-9_]\g
\scoincide con espacios en blanco
\Dcoincide con cualquier cosa que no sea un dígito del 0 al 9
\Wcoincide con cualquier cosa que no sea una letra, dígito o guión bajo ASCII
\Scoincide con cualquier cosa que no sea un espacio en blanco

Probar tus expresiones regulares

Aquí hay tres sitios web para probar, guardar y compartir tus expresiones regulares.

RegEx más utilizados

cuantificadores

cuantificadorLeyendaEjemploCoincidencia de muestra
+Uno o masVersión \w-\w+Versión A-b1_1
{3}exactamente tres veces\D{3}A B C
{2,4}De dos a cuatro veces\d{2,4}156
{3,}Tres o más veces\w{3,}Regex_tutorial
*Cero o más vecesA B C*AAACC
?una vez o ningunaplurales?plural

Más personajes

PersonajeLeyendaEjemploCoincidencia de muestra
.Cualquier carácter excepto salto de líneaC.Aa B C
.Cualquier carácter excepto salto de línea.*cualquier hombre.
.Un punto (carácter especial: debe ser escapado por un \)C.AC.A
\Escapa un carácter especial\.\*\+\? \$\^\/\\.*+? $^/\
\Escapa un carácter especial\[\{\(\)\}\][{()}]

Lógica

LógicaLeyendaEjemploCoincidencia de muestra
|Alternancia / operando OR22|3333
(…)grupo de capturaA (no | manzana)Apple (captura «pple»)
\1Contenidos del Grupo 1r(\w)g\1xexpresiones regulares
\2Contenidos del Grupo 2(\d\d)\+(\d\d)=\2\+\112+65=65+12
(?:…)Grupo que no capturaA(?:nt|manzana)manzana

Más espacios en blanco

PersonajeLeyendaEjemploCoincidencia de muestra
\tPestañaT\t\w{2}Pestaña
\rCarácter de retorno de carrovea abajo
\norteCarácter de avance de líneavea abajo
\r\nSeparador de línea en WindowsAB\r\nCD
CD AB
\NORTEPerl, PCRE (C, PHP, R…): un carácter que no es un salto de línea\N+A B C
\hPerl, PCRE (C, PHP, R…), Java: un carácter de espacio en blanco horizontal: tabulador o separador de espacios Unicode
\HUn carácter que no es un espacio en blanco horizontal
\v.NET, JavaScript, Python, Ruby: pestaña vertical
\vPerl, PCRE (C, PHP, R…), Java: un carácter de espacio en blanco vertical: avance de línea, retorno de carro, tabulación vertical, avance de formulario, párrafo o separador de línea
\VPerl, PCRE (C, PHP, R…), Java: cualquier carácter que no sea un espacio en blanco vertical
\RPerl, PCRE (C, PHP, R…), Java: un salto de línea (retorno de carro + par de avance de línea, y todos los caracteres coincidentes con \v)
Nicolás Ockier
Nicolás Ockierhttps://ockier.es/quien-soy/
Mi nombre es Nicolás Ockier y soy Senior SEO en Barcelona. Con más de 15 años de experiencia como SEO manager, me he convertido en un solucionador de problemas de marketing digital que determina el contenido que necesita una web en función de las consultas de los motores de búsqueda. Durante años llevo obteniendo excelentes resultados en mercados altamente competitivos.
RELATED ARTICLES

3 COMENTARIOS

    • Hola Victoria,

      Muchas gracias por tu consulta. Hacerlo con regex es complicar las cosas, es más fácil hacerlo con simples condicionales. Pero aún así, el regex quedaría algo así:
      \/[^\/]+\/[^\/]+\/([^\/]+).*

      Espero que esto te ayude.

      Salu2

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Tiempo excedido. Por favor, completa el captcha nuevamente.

LO ÚLTIMO

LO MÁS POPULAR