我有这个字符串:
auteur = "comte de Flandre et Hainaut, Baudouin, Jacques, Thierry"
我想在第一个逗号之前删除所有内容,即在这种情况下保留“Baudouin,Jacques,Thierry”
试过这个:
nom = auteur.gsub(/.*,/, '')
但是在最后一个逗号之前删除了每个逗号并且仅保留“Thierry”。
答案 0 :(得分:8)
auteur.partition(",").last
# => " Baudouin, Jacques, Thierry"
答案 1 :(得分:6)
使用#sub
代替#gsub
仅删除第一个匹配项并使重复延迟(?
):
auteur = "comte de Flandre et Hainaut, Baudouin, Jacques, Thierry"
nom = auteur.sub(/.*?,/, '') # => " Baudouin, Jacques, Thierry"
或者根本不使用正则表达式(如果没有逗号则返回原始字符串):
auteur.split(',', 2).last # => " Baudouin, Jacques, Thierry"
答案 2 :(得分:1)
您可以对第一个逗号使用正面的lookbehind,然后使用[]
表示法使用这样的内容:
nom = auteur[/(?<=\,\s).*/]
#=> "Baudouin, Jacques, Thierry"