[Ror-es] Más de expresiones regulares
Luis Villegas
Tue Jul 31 15:43:07 GMT 2007
- Previous message: [Ror-es] onmouseover en Link_to
- Next message: [Ror-es] Más de expresiones regulares
-
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Buenas, a ver si me entero de cómo hacer cosas con expresiones regulares,
porque no me aclaro. Llevo un par de horas con el método prueba-error para
sacar algo y no hay manera.
El es que lo que quiero es sacar de una sentencia sql, las columnas a las
que se hace consulta.
Y estos son los 3 posibles casos:
select a.login, a.nombre from usuarios
select a.login as acceso, a.nombre as el_nombre from usuarios
select a.login acceso, a.nombre el_nombre from usuarios
Sé que hacerlo es algo tan fácil como crear una expresión regular que haga
lo siguiente:
-corte lo que hay entre el select y el from,
-del resultado sacar lo que está separado por las comas,
-y de cada uno de los elementos resultantes, sacar lo que hay más a la
derecha, separado por espacio o punto...
Yo lo he hecho a lo bruto, pero me molesta tener que codificar tanto
pudiendo hacerlo mucho más fácil.
Me queda así:
query = "select a.login acceso, a.nombre as el_nombre, a.password from
usuarios"
aux = query.downcase.split(/from/)[0]
array_aux = aux.gsub(/select/,"").split(",")
retorno = []
array_aux.each do |cadena|
aux = cadena.strip
for aux2 in aux.split(" ")
aux2
end
aux2 = aux2.split(".")[1] if aux2=~/\./
retorno << aux2
end
retorno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20070731/d78991ba/attachment.htm
- Previous message: [Ror-es] onmouseover en Link_to
- Next message: [Ror-es] Más de expresiones regulares
-
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]