Uso expresiones regulares

Hola tengo problemas para poder identificar una expresiones regulares
espero me puedan orientar

Recibo estos datos los cuales puden ser mas

“[“id”,“name”,“created_at”]”

como puedo obtener id, name y created_at de forma dinamica puuesto q
pueda q reciba mas datos ejemplo:
“[“id”,“name”,“created_at”,“description”]”

On Apr 1, 2008, at 22:42 , Sergio L. wrote:

“[“id”,“name”,“created_at”,“description”]”
Los slashes mismos forman parte de la cadena input? o los ejemplos
estan copiados del output de irb y en realidad no hay tales slashes?

– fxn

Xavier N. wrote:

On Apr 1, 2008, at 22:42 , Sergio L. wrote:

“[“id”,“name”,“created_at”,“description”]”
Los slashes mismos forman parte de la cadena input? o los ejemplos
estan copiados del output de irb y en realidad no hay tales slashes?

– fxn

Si puesto que desde el lciente los envio asi:
“[“id”,“name”,“created_at”,“description”]”,
y cuando lo imprimo salen asi:
“[“id”,“name”,“created_at”,“description”]”
con slashses todo esto hace suponer q si, q ruby les pone los slashes.

Es eh reliazado experimentos peor no eh tendio exito solo me trae el
primer macth
reg = Regexp.new(/"(\w*)"/)
fields = “[“id”,“name”,“created_at”,“description”]”
omg ="#{(reg.match(fields))}"

p omg

y cunado sale impreso sale

““id””
y tmabein intente:

p omg[0]
p omg[1]
y salen puros numero

2008/4/1 Sergio L. [email protected]:

Es eh reliazado experimentos peor no eh tendio exito solo me trae el
primer macth
reg = Regexp.new(/"(\w*)"/)
fields = “[“id”,“name”,“created_at”,“description”]”
omg ="#{(reg.match(fields))}"

Haciendo algo rápido y medio cerdo:
“[‘id’,‘name’,‘created_at’,‘description’]”.gsub(/[[|]’]/,"").split(",")

Que lo que hace básicamente es quitar los [, ] y ’ y devolverte los
valores separados que están separados por comas.

On Apr 1, 2008, at 23:02 , Sergio L. wrote:

Es eh reliazado experimentos peor no eh tendio exito solo me trae el
primer macth
reg = Regexp.new(/"(\w*)"/)
fields = “[“id”,“name”,“created_at”,“description”]”
omg ="#{(reg.match(fields))}"

p omg

y cunado sale impreso sale

Si puedes asumir que los campos satisfacen \w+ entonces esta sencillo:

irb(main):002:0>

%q([“id”,“name”,“created_at”,“description”]).scan(/\w+/)
=> [“id”, “name”, “created_at”, “description”]

Fijate que el output es un array de cadenas, que ya es lo que creo que
necesitas obtener.

Como ves en la regexp no decimos nada acerca de las comilllas, comas,
o claudators, ya que no pertenecen a \w.

– fxn

Federico B. wrote:

2008/4/1 Sergio L. [email protected]:

Es eh reliazado experimentos peor no eh tendio exito solo me trae el
primer macth
reg = Regexp.new(/"(\w*)"/)
fields = “[“id”,“name”,“created_at”,“description”]”
omg ="#{(reg.match(fields))}"

Haciendo algo r�pido y medio cerdo:
“[‘id’,‘name’,‘created_at’,‘description’]”.gsub(/[[|]’]/,"").split(",")

Que lo que hace b�sicamente es quitar los [, ] y ’ y devolverte los
valores separados que est�n separados por comas.

ok, ya lo implemente asi:

fields = “[“id”,“name”,“created_at”,“description”]”
omg2=fields.gsub(/[[|]’]/,"").split(",")
p omg2[0]
p omg2[1]
p omg2[2]
y me imprime asi:
““id””
““name””
““created_at””
como puedo qitarle " en todo los casos y como puedo hacer un ciclo
de impresion sin tener q saber cuantons datos se envian(necesito q sea
dinamico).
gracias

On 01/04/2008, Xavier N. [email protected] wrote:

On Apr 1, 2008, at 23:02 , Sergio L. wrote:

Como ves en la regexp no decimos nada acerca de las comilllas, comas,
o claudators, ya que no pertenecen a \w.

Si no me equivoco, “claudators” es la palabra catalana que significa
“corchetes” [ ] en castellano, y lo hago constar para los que, como
yo, no lo supieran :slight_smile:


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.

On Apr 1, 2008, at 23:20 , Manuel González Noriega wrote:

On 01/04/2008, Xavier N. [email protected] wrote:

On Apr 1, 2008, at 23:02 , Sergio L. wrote:

Como ves en la regexp no decimos nada acerca de las comilllas, comas,
o claudators, ya que no pertenecen a \w.

Si no me equivoco, “claudators” es la palabra catalana que significa
“corchetes” [ ] en castellano, y lo hago constar para los que, como
yo, no lo supieran :slight_smile:

Heh.

2008/4/1 Sergio L. [email protected]:

como puedo qitarle " en todo los casos y como puedo hacer un ciclo
de impresion sin tener q saber cuantons datos se envian(necesito q sea
dinamico).

Como comenté, mi solución no es la mejor, te recomiendo que mires la
de Xavier y trabajes mejor
así.
Para imprimir los datos solo debes hacer algo como:

omg.each do {|w| p w}

Ese ‘do’ no va
allí.
fields = %w( id name created_at description )
fields.each { |field| puts field }

Un saludo,

Francesc

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs