A expressão regular simples seria algo do tipo
.(C|N)+(,.(C|N)+)* onde C=caracteres e N números(0a9)
em ruby a expressão foi muito fácil de ser construida e foi a seguinte
/\.\w+(,\.\w+)*/
\. é o caracter "."
\w qualquer palavra (com ou sem números)
#controller
def verifica_texto(txt)
filtro_ext = /\.\w+(,\.\w+)*/
return filtro_ext.match(lista).to_s
end
Se retornar true é que a expressão está correta.
Quando estava escreendo a expressão usei um avaliador de expressões
http://www.rubular.com/
Ao escrever a expressão ele avalia os resultados dado o conjunto passado
muito bom mesmo
Listas de elementos usados nas expressões
[] | faixa de caracteres ([a-z] das letras a até z ) |
\w | caracteres usados em palavras; mesmo que [0-9A-Za-z_] |
\W | caracteres não usados em palavras |
\s | espaço; mesmo que [ \t\n\r\f] |
\S | diferente de espaço |
\d | números, mesmo que [0-9] |
\D | diferente de números |
\b | backspace (0x08) (usado somente em faixas) |
\b | início ou fim de uma palavra (não usado em faixas) |
\B | diferente de \b |
* | zero ou mais repetições |
+ | uma ou mais repetições |
{m,n} | de m até n repetiçõ |
? | no máximo uma ocorrência
|
| | OU (operador lógico) |
() | conjunto |
mais exemplos e explicações em:
http://www.rubyist.net/~slagell/ruby/regexp.html
Nenhum comentário:
Postar um comentário