NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Testador de RegEx Java

Testador de RegEx Java

Teste e depure expressões regulares Java instantaneamente com o Testador de RegEx Java do Qodex, movido pelo motor java.util.regex. Obtenha feedback em tempo real com destaque de correspondências, grupos de captura e detecção de erros de sintaxe, ideal para validação de e-mail, verificação de senhas e análise de strings baseada em padrões.


Seja para criar formulários de login, validadores de entrada ou parsers personalizados, esta ferramenta simplifica seu fluxo de trabalho com regex em Java. Para testes abrangentes, combine com o Gerador de E-mail, Gerador de UUID ou Gerador de Senha para gerar entradas de teste realistas.


Refine campos específicos com nosso Validador de Regex de E-mail Java ou Validador de Regex de Número de Telefone Java para garantir que seus padrões sejam precisos e prontos para produção.

Testador de RegEx Java - Documentação

Testador de Regex Java

O Testador de Regex Java do Qodex ajuda desenvolvedores a escrever, testar e depurar expressões regulares em tempo real usando o pacote java.util.regex do Java. Suporta testes instantâneos de padrões para e-mails, senhas, números de telefone, datas, cartões de crédito e muito mais.

Você pode visualizar resultados de correspondência ao vivo, grupos de captura e feedback de sintaxe instantaneamente, facilitando o refinamento do seu regex antes de usá-lo em código Java.

Nota Importante: Esta ferramenta é executada no navegador usando o motor regex do JavaScript, que difere do java.util.regex do Java em vários aspectos. Diferenças principais a serem observadas:

  • Quantificadores possessivos (*+, ++, ?+) são suportados em Java, mas não em JavaScript

  • Grupos atômicos ((?>...)) funcionam em Java, mas não em JavaScript

  • Classes de propriedade Unicode como \p{IsGreek} ou \p{Sc} têm suporte mais amplo em Java

  • Sintaxe de referência inversa difere em strings de substituição: Java usa $1, JavaScript usa $1 (igual), mas Java também suporta \1 no padrão

  • Flags: Java suporta Pattern.CANON_EQ e Pattern.UNIX_LINES que não têm equivalente em JavaScript

Para código Java em produção, sempre verifique os padrões usando Pattern.compile() na sua IDE ou em um ambiente de execução Java.

Como usar:

  1. Insira sua expressão regular.

  2. Forneça uma string de teste.

  3. Veja instantaneamente as correspondências destacadas e os grupos de captura.

Precisa de entradas de teste? Use nossos:

Referência Rápida de Regex Java / Cheat Sheet

Salve esta tabela para consultas rápidas ao escrever padrões regex Java:

Padrão

Descrição

Exemplo

Corresponde

.

Qualquer caractere exceto nova linha

c.t

cat, cot, cut

\d

Qualquer dígito [0-9]

\d{3}

123, 456

\D

Qualquer não-dígito

\D+

abc, hello

\w

Char de palavra [a-zA-Z0-9_]

\w+

hello_42

\W

Caractere não-palavra

\W

@, #, !

\s

Espaço em branco (espaço, tab, nova linha)

\s+

espaços, tabs

\S

Não-espaço em branco

\S+

hello

^

Início da string/linha

^Hello

Hello no início

$

Fim da string/linha

world$

world no final

\b

Limite de palavra

\bcat\b

cat (não cats)

[abc]

Classe de caractere

[aeiou]

qualquer vogal

[^abc]

Classe negada

[^0-9]

não-dígito

[a-z]

Intervalo

[a-zA-Z]

qualquer letra

*

0 ou mais (greedy)

ab*c

ac, abc, abbc

+

1 ou mais (greedy)

ab+c

abc, abbc

?

0 ou 1 (opcional)

colou?r

color, colour

{n}

Exatamente n vezes

\d{4}

2024

{n,m}

Entre n e m vezes

\d{2,4}

12, 123, 1234

*?

0 ou mais (lazy)

<.*?>

tag mais curta

(abc)

Grupo de captura

(\d+)-(\d+)

grupos: 12, 34

(?:abc)

Grupo não-capturante

(?:ab)+

ab, abab

(?=...)

Lookahead positivo

\d(?=px)

5 em 5px

(?!...)

Lookahead negativo

foo(?!bar)

foo não antes de bar

(?<=...)

Lookbehind positivo

(?<=@)\w+

domínio após @

(?<!...)

Lookbehind negativo

(?<!\d)px

px não após dígito

\p{L}

Qualquer letra Unicode

\p{L}+

Hello, 你好

\1

Referência inversa ao grupo 1

(\w+)\s\1

hello hello

Fundamentos da Sintaxe Regex Java

Metacaracteres

  • .: Corresponde a qualquer caractere único exceto nova linha. Comumente usado como curinga.

  • ^: Ancora a correspondência no início de uma linha ou string. Exemplo: ^abc corresponde a abc somente se estiver no início.

  • $: Ancora a correspondência no final de uma linha ou string. Exemplo: xyz$ corresponde a xyz somente no final.

  • |: Funciona como operador lógico OU. Exemplo: cat|dog corresponde a cat ou dog.

Classes de Caractere

  • [abc]: Corresponde a qualquer um dos caracteres: a, b ou c.

  • [^abc]: Corresponde a qualquer caractere exceto a, b ou c.

  • [a-zA-Z]: Especifica um intervalo, corresponde a qualquer letra maiúscula ou minúscula de a a z.

Classes de Caractere Predefinidas

  • \d: Corresponde a qualquer dígito; equivalente a [0-9].

  • \D: Corresponde a qualquer não-dígito; equivalente a [^0-9].

  • \s: Corresponde a qualquer espaço em branco (espaço, tab, nova linha).

  • \S: Corresponde a qualquer caractere que não seja espaço em branco.

  • \w: Corresponde a qualquer caractere de palavra (letras, dígitos ou sublinhado); equivalente a [a-zA-Z0-9_].

  • \W: Corresponde a qualquer caractere que não seja de palavra.

Quantificadores

  • *: Corresponde a zero ou mais ocorrências do elemento anterior.

  • +: Corresponde a uma ou mais ocorrências.

  • ?: Corresponde a zero ou uma ocorrência. Também torna os quantificadores lazy quando colocado após eles.

  • {n}: Corresponde exatamente a n ocorrências. Exemplo: a{3} corresponde a aaa.

  • {n,}: Corresponde a n ou mais ocorrências.

  • {n,m}: Corresponde entre n e m ocorrências.

Grupos e Captura

  • (abc): Captura e agrupa a correspondência para abc. Pode ser reutilizado com referências inversas.

  • (?:abc): Agrupa abc sem capturá-lo. Útil para aplicar quantificadores sem criar referências.

  • (?i)abc: Habilita correspondência sem distinção entre maiúsculas e minúsculas para o grupo.

  • \b: Um limite de palavra.

  • \B: Um não-limite de palavra.

  • \1, \2, etc.: Referências inversas a grupos capturados.

Lookaheads e Lookbehinds

  • (?=...): Lookahead positivo. Garante que o que segue a posição atual corresponde ao padrão interno.

  • (?!...): Lookahead negativo. Garante que os caracteres seguintes não correspondam ao padrão.

  • (?<=...): Lookbehind positivo. Garante que o que precede a posição atual corresponde ao padrão.

  • (?<!...): Lookbehind negativo. Garante que o que precede não é uma correspondência.

Quantificadores Greedy vs Lazy

  • *?: Corresponde ao mínimo possível, zero ou mais vezes.

  • +?: Corresponde ao mínimo possível, uma ou mais vezes.

  • ??: Corresponde ao mínimo possível, zero ou uma vez.

  • {n,m}?: Corresponde entre n e m vezes, escolhendo a menor correspondência possível.

Quantificadores lazy são úteis quando você está tentando evitar consumir muito texto, especialmente útil para tags aninhadas ou delimitadores repetidos.

Suporte a Unicode

  • \p{L}: Corresponde a qualquer tipo de letra de qualquer idioma.

  • \p{N}: Corresponde a qualquer tipo de caractere numérico.

  • \p{IsGreek}: Corresponde a qualquer caractere no bloco Unicode grego.

  • \P{...}: O inverso de \p{...}.

As propriedades Unicode permitem que seu regex funcione globalmente, ótimo para aplicações internacionais.

Exemplos Comuns de Regex Java

Cada exemplo abaixo inclui código Java completo e executável que você pode copiar para sua IDE.

1. Validação de E-mail

Use com o Validador de Regex de E-mail Java

import java.util.regex.*;

public class EmailValidator { public static void main(String[] args) { String email = "test@example.com"; Pattern pattern = Pattern.compile("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"); Matcher matcher = pattern.matcher(email); System.out.println("Email valid: " + matcher.matches()); // true } }

2. Verificação de Senha Forte

Teste com o Validador de Regex de Senha Java

import java.util.regex.*;

public class PasswordValidator { public static void main(String[] args) { String password = "Str0ng@Pass!"; String regex = "(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.[@$!%?&])[A-Za-z\d@$!%?&]{8,}"; boolean isStrong = password.matches(regex); System.out.println("Password strong: " + isStrong); // true } }

3. Formatos de Número de Telefone

Cobre (123) 456-7890, 1234567890, 123-456-7890:

import java.util.regex.*;

public class PhoneValidator { public static void main(String[] args) { String[] phones = {"(123) 456-7890", "1234567890", "123-456-7890"}; Pattern pattern = Pattern.compile( "^(\d{10}|\(\d{3}\)[\s.-]?\d{3}[\s.-]\d{4}|\d{3}[\s.-]\d{3}[\s.-]\d{4})$" ); for (String phone : phones) { System.out.println(phone + " valid: " + pattern.matcher(phone).matches()); } } }

4. Correspondência de Padrão de Cartão de Crédito (Visa)

Use o Validador de Regex de Cartão de Crédito Java com verificação Luhn para validação completa.

import java.util.regex.*;

public class CreditCardValidator { public static void main(String[] args) { String card = "4111111111111111"; Pattern visa = Pattern.compile("^4[0-9]{12}(?:[0-9]{3})?$"); System.out.println("Visa valid: " + visa.matcher(card).matches()); // true } }

5. Formatos de Data (ISO / US)

O regex verifica apenas o formato. Use bibliotecas de data Java para validação de calendário.

import java.util.regex.*;

public class DateValidator { public static void main(String[] args) { String isoDate = "2024-12-25"; String usDate = "12/25/2024";

    Pattern isoPattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");
    Pattern usPattern = Pattern.compile("\\d{2}/\\d{2}/\\d{4}");

    System.out.println("ISO valid: " + isoPattern.matcher(isoDate).matches()); // true
    System.out.println("US valid: " + usPattern.matcher(usDate).matches());     // true
}

}

Dicas Importantes

  • Sempre escape caracteres regex duas vezes em strings Java (por exemplo, \. para corresponder a um ponto literal).

  • Prefira grupos não-capturantes a menos que você precise de referências.

  • Evite regex para analisar formatos estruturados como JSON, HTML ou XML, use parsers em vez disso.

  • Use Pattern.compile() uma vez e reutilize padrões compilados para melhor desempenho.

  • Use [\s\S] em vez de . para correspondência multilinha quando o modo DOTALL for necessário.

Teste Mais Padrões Regex em Java:

Quer testar em outro idioma? Experimente nossos:

Frequently Asked Questions

Como escrevo um padrão regex em código Java?

Use Pattern.compile() e Matcher do java.util.regex para definir e aplicar regex.

Como verifico se uma string corresponde exatamente a um padrão?

Use "suaString".matches("seuPadrão") para verificar uma correspondência completa.

Como posso tornar meu regex sem distinção entre maiúsculas e minúsculas em Java?

Use a flag (?i) no padrão ou Pattern.CASE_INSENSITIVE.

Como valido um endereço de e-mail usando regex Java?

Use o padrão ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$.

Qual é a diferença entre quantificadores greedy e lazy?

Greedy corresponde ao máximo possível; lazy corresponde ao mínimo necessário. Adicione ? após qualquer quantificador para torná-lo lazy (por exemplo, *? em vez de *).

Esta ferramenta usa o motor regex do Java?

Esta ferramenta é executada no navegador usando o motor regex do JavaScript, que é semelhante ao Java, mas tem algumas diferenças. Quantificadores possessivos (*+, ++), grupos atômicos (?>...) e algumas propriedades Unicode (\p{IsGreek}) funcionam em Java, mas não em JavaScript. Sempre verifique padrões críticos em um ambiente de execução Java.

Como valido números de cartão de crédito para vários tipos de cartão usando expressões regulares?

Use padrões de prefixo específicos do cartão: Visa começa com 4 (13 ou 16 dígitos), MasterCard começa com 51-55 (16 dígitos), AmEx começa com 34 ou 37 (15 dígitos). Sempre combine a verificação de formato regex com o algoritmo Luhn para validação no mundo real.

Teste suas APIs hoje!

Escreva em português simples e o Qodex transforma em testes seguros e prontos para executar.