如何获取文本的子字符串?

时间:2011-05-31 08:11:37

标签: ruby

我的文字长度约为700。我如何只获得约30个第一个字符?

5 个答案:

答案 0 :(得分:224)

如果您的文字位于your_text变量中,则可以使用:

your_text[0..29]

答案 1 :(得分:195)

使用String#slice,别名为[]

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

答案 2 :(得分:24)

由于您将其标记为Rails,因此您可以使用truncate:

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-truncate

示例:

 truncate(@text, :length => 17)

摘录很高兴知道,它可以让你显示文本的摘录如下:

 excerpt('This is an example', 'an', :radius => 5)
 # => ...s is an exam...

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-excerpt

答案 3 :(得分:9)

如果您需要 rails ,可以使用firstsource code

'1234567890'.first(5) # => "12345"

还有lastsource code

'1234567890'.last(2) # => "90"

或者检查from/tosource code):

"hello".from(1).to(-2) # => "ell"

答案 4 :(得分:0)

如果你想要一个字符串,那么其他答案都可以,但是如果你要找的是前几个字母作为字符,你可以将它们作为列表访问:

your_text.chars.take(30)