Cortar un trozo de cadena?

Buenas, me gustaría algo parecido a lo que hace el método delete de la
clase
String, pero que sólo te borre los literales y no todas las letras de la
cadena.

Actualmente lo hago así:

linea = “noloquiero -loquiero- noloquiero”
linea[linea.index("-")+1…linea.index("-",linea.index("-")+1)]

Para coger “loquiero”, pero me parece TAN sucio.

Y haciendo esto:
linea.delete(“noloquiero”)

da esto => " – "

¿Hay alguna forma de hacerlo de una forma más fácil?

Gracias

On Tue, Feb 06, 2007 at 11:57:09AM +0100, Luis V. wrote:

Buenas, me gustaría algo parecido a lo que hace el método delete de la clase
String, pero que sólo te borre los literales y no todas las letras de la
cadena.

Actualmente lo hago así:

linea = “noloquiero -loquiero- noloquiero”
linea[linea.index(“-”)+1…linea.index(“-”,linea.index(“-”)+1)]

Para coger “loquiero”, pero me parece TAN sucio.

Igual puedes hacer algo como esto (aunque seguro que hay formas
másfáciles):

linea =~ /.±(.+)-.+/ and $1

Eso a mí me devuelve “loquiero”.

Saludos.


Imobach González Sosa
correo-e: imobachgs en banot punto net
jid: osoh en jabberes punto org
web: banot.net
blog: http://devnull.blogs.banot.net/

Luis V. wrote:

Buenas, me gustaría algo parecido a lo que hace el método delete de la
clase String, pero que sólo te borre los literales y no todas las
letras de la cadena.
no sé muy bien qué significa “los literales”, pero si entendemos que es
todo lo que no sea una letra o un número, como forma genérica te
valdría cadena.gsub(/[^\w]+/,‘’)

saludos,

javier

p.s.no he probado cómo se lleva con los caracteres no ascii


Estamos de estreno… si necesitas llevar el control de tus gastos
visita http://www.gastosgem.com !!Es gratis!!

Debí explicarme mal. Con los literales me refería a que si yo pongo
“pepe”,
sólo me borre la parte de la cadena donde esté “pepe”, no todos los
sitios
donde haya p y e.

Voy a probar vuestros métodos y a ver si consigo entenderlo, porque esto
del
regexp me tiene un poco confuso. ¿Sabéis de algún sitio donde lo
expliquen
de una forma sencilla?

Debí explicarme mal. Con los literales me refería a que si yo pongo
“pepe”, sólo me borre la parte de la cadena donde esté “pepe”, no
todos los sitios donde haya p y e.
en ese caso es tan simple como no cadena.gsub (‘pepe’,‘’)

Voy a probar vuestros métodos y a ver si consigo entenderlo, porque
esto del regexp me tiene un poco confuso. ¿Sabéis de algún sitio donde
lo expliquen de una forma sencilla?
las expresiones regulares es lo que tienen… son muy potentes pero se
pueden complicar muuuuucho. Esto no es que esté bien explicado (de
hecho no explica nada) pero como referencia de la funcionalidad que
soporta viene bien tenerlo a mano

http://www.ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html#regexp

saludos,

javier ramirez


Estamos de estreno… si necesitas llevar el control de tus gastos
visita http://www.gastosgem.com !!Es gratis!!

Tienes toda la razón, pero nos gustan las complicaciones, qué quieres.

Muchas gracias a los 2

El Tuesday 06 February 2007 12:30:46 javier ramirez
escribió:

las expresiones regulares es lo que tienen… son muy potentes pero se
pueden complicar muuuuucho. Esto no es que esté bien explicado (de
hecho no explica nada) pero como referencia de la funcionalidad que
soporta viene bien tenerlo a mano

Alguien decía (no recuerdo quién) que cuando decides resolver un problema
usando expresiones regulares, ya tienes dos problemas :stuck_out_tongue: Pero aún así me
encantan: son casi como un hobby xD

Saludos.


Imobach González Sosa
correo-e: imobachgs en banot punto net
jabber id: osoh en jabberes punto org
web: banot.net
blog: http://devnull.blogs.banot.net/

On 06/02/07, Imobach González Sosa [email protected] wrote:

El Tuesday 06 February 2007 12:30:46 javier ramirez escribió:

Alguien decía (no recuerdo quién) que cuando decides resolver un problema
usando expresiones regulares, ya tienes dos problemas :stuck_out_tongue: Pero aún así me
encantan: son casi como un hobby xD

Some people, when confronted with a problem, think “I know, I’ll use
regular expressions.” Now they have two problems. —Jamie Zawinski, in
comp.lang.emacs

http://del.icio.us/popular/regexp


Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
simplelogica.net

El Tuesday 06 February 2007 12:45:22 Manuel González Noriega
escribió:> On 06/02/07, Imobach González Sosa [email protected] wrote:

El Tuesday 06 February 2007 12:30:46 javier ramirez escribió:

Alguien decía (no recuerdo quién) que cuando decides resolver un problema
usando expresiones regulares, ya tienes dos problemas :stuck_out_tongue: Pero aún así me
encantan: son casi como un hobby xD

Some people, when confronted with a problem, think “I know, I’ll use
regular expressions.” Now they have two problems. —Jamie Zawinski, in
comp.lang.emacs

Eso es; gracias por el apunte :wink: Ahora recuerdo que yo lo leí en el blog
de
Phillip J. Elby, en un antiguo artículo suyo titulado “Python is Not
Java”[1].

Pero parafraseaba a Zawinski cambiando “expresiones regulares” por “XML”
:slight_smile:
(que creo que también es aplicable xD).

Saludos.

[1] http://dirtsimple.org/2004/12/python-is-not-java.html


Imobach González Sosa
correo-e: imobachgs en banot punto net
jabber id: osoh en jabberes punto org
web: banot.net
blog: http://devnull.blogs.banot.net/