una regulares que metodos manejo interpolar expresiones clases cadenas cadena asignacion arreglos ruby

regulares - metodos en ruby



Obtención de una subcadena en Ruby por x número de caracteres (5)

Estoy tratando de producir un código Ruby que tome una cadena y devuelva una nueva, con un número x de caracteres eliminados de su extremo; pueden ser letras reales, números, espacios, etc.

Ej: dada la siguiente cadena

a_string = "a1wer4zx"

Necesito una forma sencilla de obtener la misma cadena, menos - digamos - los 3 últimos caracteres. En el caso anterior, eso sería "a1wer". La forma en que lo estoy haciendo ahora parece muy complicada:

an_array = a_string.split(//,(a_string.length-2)) an_array.pop new_string = an_array.join

¿Algunas ideas?


¿Qué tal esto?

s[0, s.length - 3]

O esto

s[0..-4]

editar

s = "abcdefghi" puts s[0, s.length - 3] # => abcdef puts s[0..-4] # => abcdef


Otra opción es obtener la lista de chars de la cadena, take caracteres x y join nuevamente a una cadena:

[13] pry(main)> ''abcdef''.chars.take(2).join => "ab" [14] pry(main)> ''abcdef''.chars.take(20).join => "abcdef"