Alguém poderia me dizer como funciona as expressões regulares em Ruby (regex). Não estou conseguindo entender o conceito.
Expressões Regulares
2 Respostas
Voce nao esta entendendo o conceito de ER ou o jeito de usa-las em Ruby? (ou ambos? :))
Sobre o conceito - eh relativamente simples. Pense em padroes de busca (igual a gente faz no Google, depois que comeca a manjar um pouco: and, or, entre aspas, sem aspas, etc). As ERs sao padroes para buscas em texto. Dado um texto e uma ER, pode pode saber se o texto atende ou nao a ER proposta.
Voce pode fazer uma ER para verificar o formato de um email p.ex.: tem que ter arroba, alguma coisa antes do arroba, alguma coisa depois do arroba, pelo menos um ponto depois do arroba mas nao imediatamente apos o arroba, … - essas “regras” podem ser sintetizadas de forma simples em uma ER:
^([^@\s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})$
Cada simbolo significa uma coisa ("^" indica o comeco da string, “?” indica que o simbolo anterior pode aparecer 0 ou 1 vez, “+” significa que o simbolo anterior pode aparecer uma ou mais vezes, etc). Para entender esses simbolos (eh praticamente uma linguagem hehehe), veja o excelente livro do Verde sobre o assunto, que esta disponivel online:
http://guia-er.sourceforge.net/
Para o jeito de usa-las em Ruby especificamente, o tutorial de Ruby do TaQ pode ajudar (tem uma secao para isso):
http://200.211.78.140/taq/downloads/tutorialruby.pdf
Sobre duvidas especificas de Ruby voce estara bem servido em alguma lista nacional sobre a linguagem (existem uma ou duas eu acho), onde o pessoal tera a maior boa-vontade em colaborar (como aqui, mas aqui o foco eh Java :)).
Marcio Kuchma