Expressões regulares (também conhecidas como REGEX ou REGEXP) ajudam você a encontrar URLs ou textos que correspondem a um padrão específico.
💡REGEX é suportado no Site Explorer, Site Audit e em determinados endpoints na nossa API:
Saiba mais sobre todos os locais onde você pode usá-los.
Como REGEX funciona
Vamos passar dos exemplos mais simples para os mais avançados.
A configuração a seguir inclui todos os URLs que contêm a palavra “blog” e exclui URLs que contêm a palavra “produto”.
Isso instrui nosso bot a rastrear:
https://ahrefs.com/blog
https://ahrefs.com/blog/seo-techniques/
https://ahrefs.com/academy/blogging-for-business
E para ignorar:
https://ahrefs.com/blog/category/product-blog/
https://ahrefs.com/blog/ecommerce-out-of-stock-products/
Isso foi fácil, certo?
Mas e se você quiser incluir especificamente os URLs da subpasta /blog/ mas não https://ahrefs.com/academy/blogging-for-business
?
Você pode usar um padrão um pouco mais avançado:
Provavelmente você se pergunta o que são aqueles símbolos antes e depois de “blog”.
No regex, você tem que “escapar” alguns símbolos para que eles não sejam reconhecidos como caracteres especiais. Para fazer isso, use a barra invertida \
antes do caractere.
Um ponto simples .
no regex, por exemplo, representa qualquer caractere. Mas \.
funciona como símbolo de ponto final. É por isso que escapei o caractere de barra no exemplo acima assim: \/
Como o Ahrefs lida com múltiplas expressões REGEX
Observe que você pode aplicar vários padrões para incluir ou excluir URLs nas configurações de crawl no Site Audit. Se nenhum correspondência for encontrada para uma das regras, a regra será ignorada.
As regras acima instruirão nosso rastreador a rastrear os URLs que contêm as palavras:
“blog” ou “produto”
E não contêm as palavras:
“blogging” ou “produtivo”.
Para várias regras de reescrita de URL, cada nova regra é executada sequencialmente ao resultado da reescrita anterior.
Alguns tokens de Regex úteis
^
- este símbolo indica o início do URL
$
- este símbolo indica o final do URL
.
- o ponto decimal coincide com qualquer único caractere
*
- coincide com a expressão anterior 0 ou mais vezes
+
- coincide com 1 ou mais do anterior
?
- Coincide com 0 ou 1 do anterior
|
- é equivalente a OU.
[__]
- é semelhante a |, mas pode ser usado para definir intervalos
(__)
- parênteses agrupam o regex entre eles
\d
- coincide com um dígito
\D
- coincide com um não-dígito
\w
- coincide com um caractere de palavra
\W
- coincide com um caractere não palavra
Ferramentas e plataformas diferentes podem usar bibliotecas de regex diferentes. Nosso Site Audit utiliza RE2. Você pode encontrar a sintaxe completa aqui.
Alguns Exemplos Práticos
1. URLs Https na subpasta /wp-content/
^https:.*\/wp-content\/
^
indica o início do URL. Essa regra irá coincidir com todos os URLs que começam com "https:" seguidos por 0 até qualquer número de caracteres .*
antes de "/wp-content/".
URLs que coincidem com o padrão:
https://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png
URLs que não coincidem com o padrão:
http://ahrefs.com/blog/wp-content/uploads/2019/03/fb-ranking-1-image-1.png
2. URLs em uma subpasta, incluindo o URL do diretório em si.
\/blog(\/.*)?$
Essa regra irá coincidir com todos os URLs que terminam $
com "/blog", opcionalmente seguidos pela barra e de 0 até qualquer número de caracteres (\/.*)?
. O ponto de interrogação neste padrão coincide com a expressão entre parênteses entre zero e uma vez, tornando-o opcional.
URLs que coincidem com o padrão:
https://ahrefs.com/blog
https://ahrefs.com/blog/301-redirects/
URLs que não coincidem com o padrão:
https://ahrefs.com/blogging
https://ahrefs.com/academy/blogging-for-business
3. URLs que contêm símbolos @ ou %
@|%
ou [@%]
|
e [__]
funcionam como OU
URLs que coincidem com o padrão:
https://ahrefs.com/@timsoulo
https://ahrefs.com/%D1%81%D0%B5%D0%BE
URLs que não coincidem com o padrão:
https://ahrefs.com/blog/nofollow-links
4. URLs de “Adicionar ao Carrinho” no Woocommerce
\?adicionar-ao-carrinho=
Lembre-se de que ?
é um símbolo especial no regex. Para usá-lo como um simples ponto de interrogação, não se esqueça de escapá-lo assim: \?
URLs que coincidem com o padrão:
https://seudominio.com/?adicionar-ao-carrinho=25
URLs que não coincidem com o padrão:
https://seudominio.com/smartphones
5. URLs contendo um ano (4 dígitos)
[0-9]{4}
ou \d{4}
[0-9]{4}
coincidirá com todos os URLs que contêm quatro {4}
dígitos [0-9]
em sequência
\d{4}
faz o mesmo que \d
representa um dígito
URLs que coincidem com o padrão:
https://seudominio.com/melhores-smartphones-2019
URLs que não coincidem com o padrão:
https://seudominio.com/smartphones
6. Todos os URLs do subdomínio (tanto http quanto https)
^https?:\/\/help.ahrefs.com
Esta regra irá coincidir com todos os URLs que começam com "http://help.ahrefs.com" ou "https://help.ahrefs.com".
O ponto de interrogação aqui s?
indica que "s" é opcional, então tanto http quanto https irá coincidir com esta regra.
URLs que coincidem com o padrão:
https://help.ahrefs.com
http://help.ahrefs.com/
http://help.ahrefs.com/site-audit
URLs que não coincidem com o padrão:
https://ahrefs.com/site-audit
ftp://help.ahrefs.com
7. Vários URLs de arquivo
\.(jpg|gif|bmp|png|css|pdf)$
Essa regra irá coincidir com todos os URLs que terminam $
com .jpg OU .gif OU .bmp OU .png OU .css OU .pdf.
Você pode reduzir essa expressão para focar em um número menor de extensões. Por exemplo, apenas para URLs que terminam $
com .jpg OU .png somente:
.*\.(jpg|png)$
Parênteses (__)
agrupam o regex entre eles e |
representa ou
URLs que coincidem com o padrão:
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
URLs que não coincidem com o padrão:
https://ahrefs.com/site-audit
8. Usando regras de reescrita de URL para analisar um site em preparação no Site Audit
Você pode usar regras de reescrita de URL nas configurações do Site Audit para substituir algumas partes dos URLs por outro valor.
Por exemplo. Quando seu site de testes é baseado em um subdomínio, por exemplo staging.ahrefs.com
Esta regra irá substituir "ahrefs.com" em todo URL por "staging.ahrefs.com"
9. Usando regras de reescrita de URL com grupos de captura numerados
Com grupos de captura, você pode substituir várias partes do URL com uma regra.
Padrão de combinação:
www\.ahrefs\.com([^\?|#]*)?([#]?[^\?]*)\??(.*)
Substituir com:
www.ahrefs.com\1?parametro1=5273&\2?parametro2=7465&\3
([^\?|#]*)
é o 1º grupo de captura
([#]?[^\?]*)
é o 2º grupo de captura
(.*)
é o 3º grupo de captura
\1?parametro1=5273&\2\3
substitui o valor para o 1º grupo de captura por "?parametro1=5273
"
\2?parametro2=7465&
substitui o valor para o 2º grupo de captura por "?parametro2=7465&
"
\3
insere o valor que coincide com o 3º grupo de captura
6. Filtrar por texto que seja maior que 50 caracteres
^[\s\S]{50,}$
Recursos adicionais
Espero que este artigo tenha ajudado você a aprender alguns truques legais que você pode fazer com Expressões Regulares.
Você pode testar seu Regex neste site: https://regex101.com/. Observe que você deve selecionar “Golang” no menu à esquerda.