Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

Ir para o conteúdo principal
Gizke.com
Blog

Testador de regex

Funciona no seu dispositivo. Nada é enviado.

Sinalizadores

Padrões comuns

Texto de teste

Nenhuma correspondência encontrada

Explicação

Digite um padrão acima para ver um detalhamento do que cada parte faz

Teste, explique e depure expressões regulares JavaScript com destaque de correspondências ao vivo, inteiramente no seu navegador.

Uma expressão regular (regex) é um padrão usado para corresponder, encontrar ou substituir texto - a mesma ferramenta subjacente que alimenta o buscar-e-substituir em editores de código, validação de formulários e análise de logs. Este testador executa o mecanismo de regex nativo do JavaScript diretamente no seu navegador: digite um padrão e um texto de teste, e ele destaca cada correspondência, decompõe os grupos de captura, pré-visualiza substituições e explica em linguagem simples o que cada parte do padrão faz. Nada do que você digita é enviado para qualquer lugar.

Perguntas frequentes

Qual variante de regex isso usa?
O mecanismo de regex nativo do JavaScript (aquele por trás de RegExp e String.prototype.match/replace), já que tudo aqui roda do lado do cliente no seu navegador em vez de em um servidor. É muito próximo do PCRE, mas tem algumas diferenças - por exemplo, o suporte a lookbehind depende da versão do mecanismo, e grupos nomeados usam a sintaxe (?<nome>...).
Por que meu padrão corresponde apenas uma vez?
Por padrão, sem o sinalizador g (global), uma regex para após sua primeira correspondência - isso reflete como RegExp.exec() e String.match() realmente se comportam em JavaScript. Ative o sinalizador g acima para encontrar todas as correspondências no texto de teste em vez de apenas a primeira.
Qual é a diferença entre (...) e (?:...)?
Ambos agrupam partes de um padrão, mas apenas (...) - um grupo de captura - salva o que correspondeu para que você possa referenciá-lo depois (como $1, $2, ... em uma substituição, ou na lista de grupos da correspondência). (?:...) é um grupo sem captura: agrupa e aplica quantificadores sem manter a correspondência, útil quando você precisa agrupar mas não se importa com o texto capturado.
Como funcionam os grupos nomeados e as substituições $<nome>?
Escreva (?<nome>...) em vez de (...) para capturar um grupo com um nome em vez de apenas um número. No modo Substituir, referencie-o no texto de substituição como $<nome> - por exemplo, (?<ano>\d{4})-(?<mes>\d{2}) substituído por $<mes>/$<ano> reorganiza uma data sem precisar lembrar os números dos grupos.
Qual é a diferença entre um quantificador guloso (greedy) e um preguiçoso (lazy), como + versus +??
Um quantificador guloso (+, *, {2,4}) corresponde ao máximo possível e só recua se necessário para que o restante do padrão combine. Um quantificador preguiçoso - o mesmo símbolo seguido de ? - corresponde ao mínimo possível, expandindo um caractere por vez apenas quando necessário. Por exemplo, <.+> contra <a><b> corresponde gulosamente a todo <a><b>, enquanto <.+?> corresponde preguiçosamente apenas a <a>.
O que lookahead e lookbehind realmente verificam, se não consomem nenhum caractere?
Eles verificam se um padrão aparece logo antes ou depois da posição atual sem incluí-lo na própria correspondência - assim, (?=...) e (?<=...) verificam à frente/atrás que algo deve estar presente, enquanto (?!...) e (?<!...) verificam que não deve estar presente. É por isso que você pode usar \d+(?=px) para corresponder a um número apenas quando seguido de 'px', embora 'px' em si nunca apareça no texto correspondido.
Para desenvolvedores: abra esta página com os parâmetros `q` (o padrão) e `text` (o texto de teste) na URL - ex. gizke.com/regex?q=\d+&text=There are 42 apples - e ambos serão preenchidos automaticamente. A maioria dos visitantes não vai precisar disso; serve para criar um link direto para um exemplo pronto para uso.

Compartilhe esta ferramenta

BlogSobreContatoTermos de UsoPolítica de Privacidade