Testador de Regex/ Tempo real

Destaque de correspondências em tempo real com detalhes de grupos de captura, modo substituição e padrões integrados. Totalmente local.

//
Rápido:
Texto de teste

Insira um padrão acima.

Esta ferramenta resolveu o seu problema?

O que é um testador de regex

Um testador de regex permite que desenvolvedores testem e depurem expressões regulares em tempo real, vendo instantaneamente resultados de correspondência, grupos de captura e efeitos de substituição.

Casos de uso comuns de regex

Validação de formulários: verificar formatos de email, telefone, ID. Extração de dados: extrair padrões específicos do texto. Substituição de texto: substituir em massa texto que corresponda ao padrão. Análise de logs: filtrar linhas por condições.

Exemplos de código

JavaScript
const re = /(?<year>\d{4})-(\d{2})/g;
const str = "2024-03 and 2025-01";

for (const m of str.matchAll(re)) {
  console.log(m[0]);          // "2024-03"
  console.log(m.groups.year); // "2024"
  console.log(m[2]);          // "03"
  console.log(m.index);       // 0
}
Python
import re

pattern = r"(?P<year>\d{4})-(\d{2})"
text = "2024-03 and 2025-01"

for m in re.finditer(pattern, text):
    print(m.group(0))         // "2024-03"
    print(m.group("year"))    // "2024"
    print(m.group(2))         // "03"
    print(m.start())          // 0
Go
import "regexp"

re := regexp.MustCompile(
  `(?P<year>\d{4})-(\d{2})`,
)
text := "2024-03 and 2025-01"

matches := re.FindAllStringSubmatch(
  text, -1,
)
// matches[0][0] = "2024-03"
// matches[0][1] = "2024"  (year)
// matches[0][2] = "03"
Rust
use regex::Regex;

let re = Regex::new(
  r"(?P<year>\d{4})-(\d{2})"
).unwrap();
let text = "2024-03 and 2025-01";

for cap in re.captures_iter(text) {
    println!("{}", &cap[0]);  // "2024-03"
    println!("{}", &cap["year"]); // "2024"
    println!("{}", &cap[2]);  // "03"
}

Perguntas frequentes

O que fazem os indicadores regex?
g (global) encontra todas as correspondências; i (ignore case) torna a busca insensível a maiúsculas; m (multiline) faz ^ e $ corresponderem a limites de linha; s (dotAll) faz . corresponder a quebras de linha.
Como usar grupos de captura na substituição?
Envolver partes do padrão em () para criar grupos, depois referenciar como $1, $2 no campo Substituir. Exemplo: padrão (\d{4})-(\d{2}) com substituição $2/$1 converte 2024-03 em 03/2024.
O que significa o índice de correspondência?
O índice é o deslocamento de caractere base zero onde a correspondência começa na string original. Útil em código — corresponde ao índice retornado por String.prototype.exec().
Como corresponder caracteres Unicode / CJK?
Para caracteres chineses: [\u4e00-\u9fff]. Faixa mais ampla: [\u4e00-\u9fff\u3400-\u4dbf]. Com o indicador u, use \p{Script=Han} para todos os caracteres Han.
O que são asserções lookahead e lookbehind?
Correspondem a posições, não caracteres: (?=…) lookahead positivo — o lado direito deve corresponder; (?!…) lookahead negativo — o lado direito não deve corresponder; (?<=…) lookbehind positivo — o lado esquerdo deve corresponder.
Por que meu regex causa loop infinito?
Com o indicador g, um padrão que pode corresponder a strings vazias (como a* ou .*) não avança lastIndex após uma correspondência vazia. Esta ferramenta avança lastIndex automaticamente e limita a 2000 correspondências.