Teste o padrão e confira correspondências ou substituições. A assistência de IA opcional envia descrição, padrão e flags à DeepSeek após sua confirmação.
Descreva a regra de correspondência ou analise o padrão atual. O texto de teste continua no navegador.
—
O testador executa um padrão sobre o texto de exemplo com o mesmo mecanismo que o seu navegador usa, então o que casa aqui também casa na sua aplicação. Além da lista de correspondências, você vê os sinalizadores ativos, os grupos de captura e uma prévia da substituição.
Os padrões são de JavaScript (ECMAScript), não de PCRE ou Python. Os dialetos se sobrepõem bastante, mas não completamente, e essa é a razão mais comum de um padrão que funciona em outro lugar falhar aqui. Padrões prontos para e-mail, URL, IPv4, UUID, data, hora, cor hexadecimal e números estão a um clique.
É ECMAScript. Grupos nomeados (?<nome>...), asserções de retrospecção (?<=...) e (?<!...) e classes Unicode como \p{Letter} com o sinalizador u funcionam nos navegadores atuais. Quantificadores possessivos, grupos atômicos, recursão, as âncoras \A e \Z e modificadores embutidos como (?i) não fazem parte da linguagem.
Diferenças assim quebram padrões escritos para Python, PHP ou Java: (?P<nome>...) vira (?<nome>...), \Z é substituído por $ e os modificadores saem do padrão para as caixas de seleção. Com essas três mudanças a maioria dos casos reais se resolve.
A busca global devolve todas as correspondências em vez de parar na primeira, e é ela que faz uma substituição valer para todo o texto, não só para o primeiro acerto. Ignorar maiúsculas e minúsculas faz as letras casarem em qualquer caixa. Multilinha permite que ^ e $ casem nas quebras de linha internas, não apenas no início e no fim da string.
Ponto inclui quebras de linha deixa um ponto consumir a quebra, o que é necessário para casar um bloco inteiro de texto. O modo Unicode passa a semântica de pontos de código: um ponto casa com o emoji inteiro, e não com metade dele, e habilita as classes \p{...}.
Os grupos de captura são numerados pela ordem de abertura dos parênteses; um grupo sem captura (?:...) não ocupa número, o que ajuda quando você só quer agrupar uma alternância. Grupos nomeados entram na substituição como $<nome>, bem mais legível que $3 quando o padrão cresce.
No texto de substituição, $1 a $99 inserem grupos capturados, $& insere a correspondência inteira e $$ insere um cifrão literal. Cuidado com quantificadores aninhados como (a+)+ sobre entradas longas que quase casam: eles podem explorar um número exponencial de caminhos e travar a página.
Não. As correspondências e as substituições são calculadas no seu navegador com o mecanismo de JavaScript, e os botões da ferramenta não fazem nenhuma requisição de rede. A única exceção é o painel de IA opcional: depois de marcar a caixa de consentimento, ele envia ao DeepSeek apenas a descrição que você escreve, o padrão atual e os sinalizadores, nunca o texto de exemplo.
Porque o dialeto é diferente. Python escreve grupos nomeados como (?P<nome>...) e tem \Z; Java e PCRE têm quantificadores possessivos e grupos atômicos; PHP aceita modificadores como (?i). ECMAScript não tem nada disso, então o padrão precisa ser traduzido, não copiado.
Porque a busca global está desmarcada. Sem esse sinalizador a substituição para no primeiro acerto, como acontece com String.prototype.replace quando o padrão não é global; para trocar o texto todo, marque Global.
Global: todas as correspondências e todas as substituições, não só a primeira. Ignorar maiúsculas: as letras casam em qualquer caixa. Multilinha: ^ e $ também casam nas quebras de linha internas. Ponto inclui quebras: um ponto pode consumir a quebra. Unicode: semântica de pontos de código, um emoji conta como um caractere e as classes \p{...} ficam disponíveis.
A posição é o índice onde a correspondência começa, contado a partir de 0. Os grupos de captura aparecem numerados ($1, $2...) e entre aspas, e um grupo nomeado aparece também com o nome. Se um grupo opcional não participa da correspondência, ele aparece vazio — exatamente o que se precisa para depurar o padrão.
$1 a $99 inserem o grupo correspondente, $& insere a correspondência inteira, $<nome> insere um grupo nomeado e $$ insere um cifrão literal. Lembre que, como no JavaScript, sem a caixa Global só a primeira correspondência é substituída.