J'ai un texte d'une longueur de ~700. Comment puis-je obtenir seulement ~30 de ses premiers caractères ?
Donc, en gros, 3 points(...) signifie que la fin est exclusive et 2 points(..) signifie que la fin est inclusive.
J'ai un texte d'une longueur de ~700. Comment puis-je obtenir seulement ~30 de ses premiers caractères ?
Utilisez String#slice
également connu sous le nom de []
.
a = "hello there"
a[1] #=> "e"
a[1,3] #=> "ell"
a[1..3] #=> "ell"
a[6..-1] #=> "there"
a[6..] #=> "there" (requires Ruby 2.6+)
a[-3,2] #=> "er"
a[-4..-2] #=> "her"
a[12..-1] #=> nil
a[-2..-4] #=> ""
a[/[aeiou](.)\1/] #=> "ell"
a[/[aeiou](.)\1/, 0] #=> "ell"
a[/[aeiou](.)\1/, 1] #=> "l"
a[/[aeiou](.)\1/, 2] #=> nil
a["lo"] #=> "lo"
a["bye"] #=> nil
Pour être clair, -1
est utilisé pour aller à la fin de la chaîne, donc a[1..-1] #=> "ello there"
.
Puisque vous l'avez tagué Rails, vous pouvez utiliser truncate :
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-truncate
Exemple :
truncate(@text, :length => 17)
L'extrait est également utile, car il vous permet d'afficher un extrait de texte :
excerpt('This is an example', 'an', :radius => 5)
# => ...s is an exam...
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-excerpt
Ce changement était-il justifié ? Si le PO travaille dans Rails et demande une solution dans Rails, alors la question devrait être étiquetée avec Rails. Et votre réponse aurait alors un sens.
Si vous en avez besoin dans rails vous pouvez utiliser premièrement ( code source )
'1234567890'.first(5) # => "12345"
il y a aussi dernier ( code source )
'1234567890'.last(2) # => "90"
ou bien vérifier de/à ( code source ):
"hello".from(1).to(-2) # => "ell"
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.