J'ai un texte de longueur ~ 700. Comment puis-je obtenir seulement ~ 30 de ses premiers personnages?
Si vous avez votre texte dans la variable your_text
, vous pouvez utiliser:
your_text[0..29]
Utilisez String#slice
, alias également _[]
_.
_a = "hello there"
a[1] #=> "e"
a[1,3] #=> "ell"
a[1..3] #=> "ell"
a[6..-1] #=> "there"
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
_
Puisque vous 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 agréable à connaître aussi, il vous permet d'afficher un extrait de texte comme suit:
excerpt('This is an example', 'an', :radius => 5)
# => ...s is an exam...
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-excerpt
si vous en avez besoin dans Rails , vous pouvez utiliser premier ( code source )
'1234567890'.first(5) # => "12345"
il y a aussi dernier ( code source )
'1234567890'.last(2) # => "90"
alternativement, vérifier de/à ( code source ):
"hello".from(1).to(-2) # => "ell"
Si vous voulez une chaîne, les autres réponses vous conviennent, mais si vous cherchez les premières lettres sous forme de caractères, vous pouvez y accéder sous forme de liste:
your_text.chars.take(30)