Duvida com Expressão regular

Ola pessoal queria saber se poderiam me ajudar.

criei a seguinte expressão regular:


Pattern padrao = Pattern.compile("Group \d:*");
Matcher teste;

tenho, em um arquivo, varias linhas e queria identificar as linhas que comecem com esse padrão “Group 0:” ou “Group 1:”. Ou seja, a palavra Group seguida de um digito e dois pontos.

no teste to fazendo assim


//linha é a string lida do arquivo
teste=padrao.matcher(linha);
if(teste.matches())
    System.out.println(linha);

so que nao aparece nada.

Acho q estou errando ao fazer a expressão regular, so que nao consigo achar nada q possa me ajudar.

ps: estou usando o eclipse no ubuntu.

Desde ja agradeço a ajuda de voces. :smiley: :wink:

hm… voce tá usando os métodos errados, e mandando imprimir a coisa errada…

olha esse codigo, e segue esse tutorial:

http://java.sun.com/docs/books/tutorial/essential/regex/test_harness.html

use o método find, e para pegar a expressao achada use o metodo group.

ok me tira um duvida ,pq colocaste o asterisco se teu padrao de busca
é group 0: ,group 1:,group 2:, ect entao nao precisa dele lembra que o asterisco aceita zero ou mais ocorrencias de qualquer coisa e no seu caso a expressao vai aceitar grupo [digito] sem dois pontos
Agora acho que vc nao consegue ver o resultado pq falta o loop
[code]
Pattern padrao = Pattern.compile(“Group\d:”);
Matcher teste=padrao.matcher(“Group0:”);

  while(teste.find()){//se encontra a correspondencia  retorna true 

System.out.println("indice “+teste.start()+” aki esta "+teste.group());

  }

[/code]
vê ai se roda,tenta ai tenho quase certeza que é isso mesmo pois comecei a estudar esse assunto a pouco tempo

hum…

entao eu usei o asterisco porque o arquivo , que é grande, tem várias linhas e essas linhas começam com Group [0-9]: , como so começam eu achei q colocando o asterisco funcionaria… ficaria Group 0: mais qualquer coisa.

este é o conteudo do arquivo.

eu quero guardar somente as linhas que começam com Group \d:

enquanto ao loop eu coloquei, mas nao coloquei no exemplo que postei… foi mal :stuck_out_tongue:

entao, se nao posso usar o asterisco, o que eu uso?

:? :?:

beleza é so usar (“Group\d+:”) assim ele encontra 1 ou mais ocorrencia
de digitos atraves do metacaracter “+” pois eu vi que sempre tem
Group seguido de pelo menos um digito