ruby on rails, de remplacer le dernier caractère si c'est un * signe
J'ai un string et j'ai besoin de vérifier si le dernier caractère de la chaîne est *, et si elle l'est, j'ai besoin de l'enlever.
if stringvariable.include? "*"
newstring = stringvariable.gsub(/[*]/, '')
end
Ci-dessus n'est pas de rechercher si le symbole " * " est le DERNIER caractère de la chaîne.
Comment puis-je vérifier si le dernier caractère est '*'?
Merci pour toute suggestion
Vous devez vous connecter pour publier un commentaire.
Utiliser le
$
d'ancrage à seulement correspondre à la fin de la ligne:Si il y a la possibilité d'il y a plus d'un * à la fin de la chaîne (et que vous voulez les remplacer tous) utilisation:
.gsub!
"sample*,".gsub(/[\*,]+$/, ' ')
Vous pouvez également utiliser
chomp
(voir sur Dock API), qui supprime la fuite séparateur d'enregistrement caractère(s) par défaut, mais peuvent aussi avoir un argument, et puis il va supprimer la fin de la chaîne seulement si elle correspond au caractère spécifié(s).Chaîne a un
end_with?
méthodeVous pouvez soit utiliser une regex ou tout simplement d'épissure de la chaîne:
Qui ne fonctionne que dans Ruby 1.9.x...
Sinon, vous aurez besoin d'utiliser une regex:
Mais vous n'avez même pas besoin de la
if
:Vous pouvez effectuer les opérations suivantes qui permettra d'éliminer le caractère fautif, s'il est présent. Sinon il ne fait rien:
Si vous souhaitez supprimer plus d'une occurrence du caractère, vous pouvez le faire:
Bien sûr, si vous souhaitez modifier la chaîne en place, utiliser les sous! au lieu de sous
Cheers,
Aaron