Pregunta gsub quita todo antes de la primera coma


Tengo esta cadena:

auteur = "comte de Flandre et Hainaut, Baudouin, Jacques, Thierry"

Quiero eliminar todo antes de la primera coma, es decir, en este caso, mantener "Baudouin, Jacques, Thierry"

Intenté esto:

nom = auteur.gsub(/.*,/, '')

Pero eso elimina todos los puntos anteriores a la última coma y solo mantiene "Thierry".


5
2018-01-20 13:30


origen


Respuestas:


auteur.partition(",").last
# => " Baudouin, Jacques, Thierry"

8
2018-01-20 14:10



Utilizar #sub en lugar de #gsub para eliminar solo la primera aparición y hacer que la repetición sea perezosa (?):

auteur = "comte de Flandre et Hainaut, Baudouin, Jacques, Thierry"
nom = auteur.sub(/.*?,/, '') # => " Baudouin, Jacques, Thierry"

O no use expresiones regulares en absoluto (devuelve la cadena original si no hay comas presentes):

auteur.split(',', 2).last # => " Baudouin, Jacques, Thierry"

6
2018-01-20 13:34



Puedes usar un lookbehind positivo para la primera coma y luego algo como esto con [] notación:

nom = auteur[/(?<=\,\s).*/]
#=> "Baudouin, Jacques, Thierry"

1
2018-01-20 13:41