Dúvida em Patterns
06/08/2010 00:00
0
Olá a todos. Sou inciante em groovy e estou estudando pelo livro Beginning Groovy and Grails quando me surgiu essa dúvida sobre patterns.
Executando este código ele retorna o seguinte resultado.


def saying = """Now is the time for all good men and women) to come to the aid of their country"""
def pattern = ~/(\w+en)/
def matcher = pattern.matcher(saying)
def count = matcher.getCount()
println "Matches = ${count}"
for(i in 0..<count) {
println matcher[i]
}


Resultado:
Matches = 2
[men, men]
[women, women]

A variável matcher guarda as palavras que ele encontrou, que no exemplo são duas. Porque ao imprimir, ele retorna um vetor para cada palavra?


[]'s
Tags: Groovy


0
O matcher no Groovy armazena os dados como um array bidimensional.

A primeira dimensão armazena cada ocorrência que foi encontrada enquanto a segunda dimensão armazena os grupos nos quais estamos interessados

Experimente o código abaixo:

for(i in 0..<count) {
println &quot;${i} - ${matcher[i][0]}&quot;
}


o resultado da saída será

0 - men
1 - women


Da uma lida neste link: <!-- m --><a class="postlink" href="http://groovy.codehaus.org/Tutorial+5+-+Capturing+regex+groups">http://groovy.codehaus.org/Tutorial+5+- ... gex+groups</a><!-- m -->
Ele esclarece varios pontos sobre o assunto.


0
Agora eu entendi!


Obrigada!!
06/08/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto