Expresión regular?

Buenas, me gustaría eliminar un carácter de una cadena.

La cadena viene así:

cad = “aaa,\nbbb,\nccc,”

se ve:
aaa,
bbb,
ccc,

Lo que quiero es borrar la última coma.

Intento así :
cad.gsub(/,$/,’’) Y me borra todas las comas porque están al final de
línea

entonces mirando la documentación veo que si se ponen llaves y un número
se
borran exactamente el número de apariciones por lo que hago así:

cad.gsub(/,{1}$/,’’) y así cad.gsub(/,${1}/,’’) pero el resultado es
el
mismo.

¿Alguna pista?

Dos opciones…

1- Usar el modificador de regexp “multilinea”, que simplemente
considera los caracteres de fin de linea como “whitespace”, con lo
cual $ no hace el match:
cad.gsub(/,$/m, ‘’) # notese la “m” despues del /

2- Eliminar el ultimo caracter del string, o lo que es lo mismo,
obtener un substring que va desde el primer caracter hasta el penultimo:
cad[0…-2]

Lo de las llaves se refiere a repeticiones consecutivas: /,{1}/ es
exactamente lo mismo que /,/ mientras que /,{3}/ equivale a /,/ y /,
{2,5}/ equivale a dos, tres, cuatro o cinco comas seguidas.

Vale, muchas gracias. Me sirvió el 2º ejemplo. No sabía que -2 era para
ir
desde atras. Yo hacía cad[0…cad.size-1]. Muy sucio

Con el primero pasa exactamente lo mismo…

Esto de las reg exp son un mundo.

Y gracias por tu explicación de lo de las llaves.

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