Como o padrão funciona
| Parte | Significado |
|---|---|
[a-z0-9]+ | Uma ou mais letras minúsculas ou dígitos |
(?:-[a-z0-9]+)* | Qualquer quantidade de palavras adicionais, cada uma após um único hífen |
^…$ | A string inteira, ou seja, sem hífens no início, no fim ou duplicados |
Exemplos de código
JavaScript
const re = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'[a-z0-9]+(?:-[a-z0-9]+)*', value))PHP
preg_match('/^[a-z0-9]+(?:-[a-z0-9]+)*$/', $value) === 1;
Notas e limitações
Transforme títulos em slugs com o Gerador de Slug.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.
Perguntas frequentes
Qual é a regex para slug de URL?
/^[a-z0-9]+(?:-[a-z0-9]+)*$/ — ela corresponde à string inteira. Veja a tabela acima para entender o que cada parte faz.
Quais exemplos correspondem?
Dos exemplos testados, estes correspondem: regex-tester, hello-world-2026, a. Os outros não.
Como testo essa regex?
Clique em “Abrir no Regex Tester”. O padrão, as flags e o texto de exemplo são carregados automaticamente, e as correspondências são destacadas conforme você edita.