O que são expressões regulares em Java?

Em Java , Regex ou Expressão regular é uma interface de programa de aplicativo que ajuda na definição de um padrão para pesquisar, manipular e editar cadeias. As expressões regulares do Java são amplamente usadas na validação de senhas e e-mails. Essas expressões são fornecidas pelo pacote java.util.regex e consistem em 1 interface e 3 classes.

As três classes são:

  1. Padrão: Ajuda na definição de padrões.
  2. Correspondente: O uso de padrões ajuda na execução de operações de correspondência.
  3. PatternSyntaxException: Ajuda na indicação de um erro de sintaxe.

O Java Regex possui uma interface conhecida como MatchResultInterface que ajuda a determinar o resultado da operação de correspondência da expressão regular.

Sintaxe da expressão regular em Java

Agora vamos ver como escrever uma expressão regular em Java com a ajuda de um programa.

Código:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
) )

Resultado:

Métodos comumente usados ​​em expressões regulares

Existem 3 métodos comumente usados ​​em expressões regulares. Eles são,

1. Métodos de indexação

Os métodos de índice oferecem valores de índice que ajudam a mostrar com precisão onde a correspondência foi encontrada na string fornecida como entrada.

Método Descrição
começar()O índice inicial da partida anterior é retornado.
start (grupo int)Dada a operação de correspondência anterior do grupo, a subsequência é capturada e retornada.
fim()O deslocamento após a correspondência do último caractere é retornado.
Fim (grupo int)Dada a operação de correspondência anterior do grupo, a subsequência é capturada e deslocada após a correspondência do último caractere retornado.

2. Métodos de Estudo

Os métodos de estudo verificam a sequência fornecida como entrada e um valor booleano é retornado, indicando se o padrão foi encontrado ou não.

Método Descrição
olhando para()Combine a sequência fornecida como entrada com o padrão desde o início da região.
encontrar()Localiza a próxima subsequência da sequência fornecida como entrada no padrão desde o início da região.
find (int start)Redefine o correspondente e, em seguida, localiza a próxima subsequência da sequência fornecida como entrada no padrão especificado no índice.
partidas()Corresponde o conteúdo ao padrão.

3. Métodos de substituição

Métodos usados ​​para substituir o texto em uma sequência.

Método Descrição
appendReplacement (StringBuffer s, substituição de String)Uma etapa de anexação e substituição não terminal será implementada.
appendTail (StringBuffer s)Uma etapa de anexação e substituição do terminal será implementada.
replaceAll (substituição de string)Substitua toda subsequência da sequência fornecida como entrada que corresponda ao padrão por uma sequência de substituição.
quoteReplacement (String s)Uma string de substituição literal será retornada para a string mencionada.
replaceFirst (substituição de string)Substitua a primeira subsequência da sequência fornecida como entrada que corresponde ao padrão por uma sequência de substituição.

Como definir expressões regulares em Java?

Existem várias maneiras pelas quais uma expressão regular pode ser definida. Eles são:

1. Literais

Suponha que uma string "hai" precise ser pesquisada em um texto "hai". Isso pode ser feito usando a sintaxe.

Pattern.matches("hai", "hai")

2. Classes de caracteres

Ele corresponde a cada caractere único no texto fornecido como entrada em relação a vários caracteres permitidos na classe de caracteres. A seguir estão as várias construções de classe.

Classe de Personagem Explicação
(pqr)Corresponde ao texto se ele contém p, q ou r e deve ser apenas uma vez.
(pqr)denota a negação e, devido a isso, aqui, um caractere único, exceto p, q ou r, é obtido.
(a-zA-Z)a a z e A a Z são considerados.
(anúncio (ps))a para d ou p para s.
(a-dm-p)União de ambas as faixas.
(az && (pqr))a a z e (p, q ou r).
(az && (pq))a a z e também, p, q não são considerados.
(ad-z)Executa a subtração.
(az && (mp))a a z e não m a p.

3. Metacaracteres

Os metacaracteres agem como códigos de acesso na expressão regular. A seguir estão alguns dos metacaracteres comumente usados.

Expressão regular Explicação
\ dQualquer dígito de 0 a 9. Também pode ser escrito como (0-9).
\ DQualquer não dígito de 0 a 9. Também pode ser escrito como (0-9).
\ sCaractere de espaço em branco ou (\ t \ n \ x0B \ f \ r).
\ SCaractere sem espaço em branco ou (\ s).
\WCaractere da palavra ou (a-zA-Z_0-9).
\WCaractere sem palavra ou (\ w).
\ bLimite de palavras.
\ BLimite sem palavras.

4. Quantificadores

Os quantificadores mencionam a contagem de ocorrência de cada caractere para corresponder à string.

Expressão regular Explicação
uma?Ocorre uma vez ou não.
UMA*A ocorre 0 ou mais vezes.
A +A ocorre 1 ou mais vezes.
A)A ocorre exatamente n vezes.
A, )A ocorre n ou mais que isso.
A (n, m)A ocorre pelo menos n vezes, mas não deve ser superior a m vezes.

Como criar expressões regulares em Java?

Agora, vamos ver um programa java com as expressões regulares mencionadas acima.

Código:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("(Hh)ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("(aA)nn|(jJ)ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^(^\\d).*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^(^\\d).*", "anna9448")); //True
)
)

Resultado:

Conclusão

As expressões regulares do Java são amplamente usadas para aplicativos em tempo real, como verificação de senha e email. Essas expressões são APIs que definem padrões e oferecem pesquisa, edição e várias outras operações na string.

Artigos recomendados

Este é um guia para expressões regulares em Java. Aqui discutimos como criar, como definir e métodos comumente usados ​​de expressões regulares em java. Você também pode consultar os seguintes artigos para saber mais -

  1. Os 3 melhores compiladores em Java
  2. Expressões regulares em JavaScript - propriedades e métodos
  3. Desenvolvimento de aplicativos Java
  4. Métodos de matriz em Java com exemplos
  5. Funções de Regex em Python (Exemplo)