Motor Regex

9 respostas
anderson.bonavides

Galera dando uma revisada em alguns assuntos me deparei com as seguintes classes Pattern, Matcher. E os seguintes métodos compile() e matcher() alguêm poderia me explicar oq eles fazem de fato?
O livro não deixa claro o que realmente eles fazem.

9 Respostas

davidbuzatto

Segundo a documentação:

Matcher: An engine that performs match operations on a character sequence by interpreting a Pattern.
Pattern: A compiled representation of a regular expression.

Dê uma olhada na documentação para mais detalhes.

Até mais!

davidbuzatto

compile(): Método estático que gera um Pattern.

Pattern p = Pattern.compile( "expressão regular" );

matcher(): Cria um Matcher para verificar se o pattern é seguido.

Matcher m = p.matcher("aaaaab");

matches(): se o padrão foi seguido na String ou não.

boolean b = m.matches();

anderson.bonavides

Eh q nunca mexi na api da sun mas vou dar uma procurada nisso. De qualquer forma vlw.
:wink:

davidbuzatto

Mais uma coisa :smiley:

Na classe Pattern existe um método matches que recebe a expressão regular e a sequëncia de caracteres a ser verificada, sendo que este método já retorna verdadeiro ou falso.

boolean b = Pattern.matches( "expressão regular", "seqüência a ser testada" );

davidbuzatto

anderson.bonavides:
Eh q nunca mexi na api da sun mas vou dar uma procurada nisso. De qualquer forma vlw.
;)

É bom começar então :smiley:

anderson.bonavides

david vlw pela força. Vou começar a olhar sim. Tenho certeza que vai ser importante para mim.
Muito obrigado e bom carnaval.
:wink:

Javabuntu

Cara é o seguinte…

A classe Pattern é usada para armazenar uma representação de uma expressão regex.

A classe Matcher é usada para chamar o motor regex para realizar as operações de busca de correspondência.

Ok…vamos supor o seguinte código:

Pattern pat = Pattern.compile("guj"); // "guj" quer dizer a expressão a ser achada

Matcher mat = pat.matcher("guja forumguj gujdenovo outro guj guj guj 5456 guj "); // essa expressão doida aqui eh sua fonte de dados....

nesse caso o que é realizado… será procurado a expressão “guj” dentro dessa fonte "guja forumguj gujdenovo outro guj guj guj 5456 guj " quando ele encontrar ele te traz o índice da posição iniciando em 0…

por exemplo no ínicio da fonte de dados, tem um “guja” no caso o motor regex vai achar o “guj” e desconsiderar o “a”…

entendeu ai mano…
flw Hewerton

davidbuzatto

anderson.bonavides:
david vlw pela força. Vou começar a olhar sim. Tenho certeza que vai ser importante para mim.
Muito obrigado e bom carnaval.
;)

Disponha :smiley:

É importante saber navegar na documentação, pois muitas das suas dúvidas podem ser respondidas lá. Dê uma olhada na página de download do JDK que tem a documentação lá p/ ser baixada.

Bom carnaval p/ vc tbm :smiley:

Até mais!

anderson.bonavides

Javabuntu:
Cara é o seguinte…

A classe Pattern é usada para armazenar uma representação de uma expressão regex.

A classe Matcher é usada para chamar o motor regex para realizar as operações de busca de correspondência.

Ok…vamos supor o seguinte código:

Pattern pat = Pattern.compile("guj"); // "guj" quer dizer a expressão a ser achada

Matcher mat = pat.matcher("guja forumguj gujdenovo outro guj guj guj 5456 guj "); // essa expressão doida aqui eh sua fonte de dados....

nesse caso o que é realizado… será procurado a expressão “guj” dentro dessa fonte "guja forumguj gujdenovo outro guj guj guj 5456 guj " quando ele encontrar ele te traz o índice da posição iniciando em 0…

por exemplo no ínicio da fonte de dados, tem um “guja” no caso o motor regex vai achar o “guj” e desconsiderar o “a”…

entendeu ai mano…
flw Hewerton

Entendi sim kra. Vlw pela força tbm.
:wink:

Criado 4 de fevereiro de 2008
Ultima resposta 4 de fev. de 2008
Respostas 9
Participantes 3