La cadena es
ex="test1, test2, test3, test4, test5"
cuando uso
ex.split(",").first
vuelve
"test1"
Ahora quiero obtener los elementos restantes, es decir, `" test2, test3, test4, test5 ". Si uso
ex.split(",").last
solo regresa
"test5"
¿Cómo hacer que todos los elementos restantes omitan el primero?
split
(unString
método) en unArray
?Respuestas:
Prueba esto:
first, *rest = ex.split(/, /)
Ahora
first
será el primer valor,rest
será el resto de la matriz.fuente
rest
solo contiene "test2".first,*rest = ex.split(/,/)
first, *rest = ex.split(/,/)
fue de hecho lo que quise decir. Gracias por aclarar eso.things = ex.split(/,/); things[1..-1]
ex.split(',', 2).last
El 2 al final dice: dividir en 2 piezas, no más.
normalmente split cortará el valor en tantas partes como sea posible, usando un segundo valor puede limitar la cantidad de partes que obtendrá. El uso
ex.split(',', 2)
te dará:["test1", "test2, test3, test4, test5"]
como una matriz, en lugar de:
["test1", "test2", "test3", "test4", "test5"]
fuente
split
nuevo si desea todos los valores excepto los primeros como una matriz en lugar de una cadena. Sigue siendo un buen truco. Además, usarex.split(',', 2).last
no devolvería la matriz que menciona, solo su último valor, ¿verdad?Como tienes una matriz, lo que realmente quieres es
Array#slice
, nosplit
.rest = ex.slice(1 .. -1) # or rest = ex[1 .. -1]
fuente
ex.split(/, /).slice(1..-1)
obtener todos los elementos menos los primeros, suponiendo que no esté interesado en el primer valor.Probablemente escribiste mal algunas cosas. Por lo que deduzco, comienzas con una cadena como:
string = "test1, test2, test3, test4, test5"
Luego, desea dividirlo para mantener solo las subcadenas significativas:
array = string.split(/, /)
Y al final solo necesitas todos los elementos excepto el primero:
# We extract and remove the first element from array first_element = array.shift # Now array contains the expected result, you can check it with puts array.inspect
Eso responde a su pregunta ?
fuente
ex="test1,test2,test3,test4,test5" all_but_first=ex.split(/,/)[1..-1]
fuente
Lo siento un poco tarde para la fiesta y un poco sorprendido de que nadie haya mencionado el método de caída :
ex="test1, test2, test3, test4, test5" ex.split(",").drop(1).join(",") => "test2,test3,test4,test5"
fuente
si desea usarlos como una matriz que ya conocía, de lo contrario, puede usar cada uno de ellos como un parámetro diferente ... intente esto:
parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")
fuente
También puedes hacer esto:
String is ex="test1, test2, test3, test4, test5" array = ex.split(/,/) array.size.times do |i| p array[i] end
fuente
Pruebe
split(",")[i]
dóndei
está el índice en la matriz de resultados.split
da matriz a continuación["test1", " test2", " test3", " test4", " test5"]
a cuyo elemento se puede acceder mediante index.
fuente