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

Sam*_*ker 164 ruby

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

Mat*_*ani 234

如果您的文本是your_text变量,则可以使用:

your_text[0..29]
Run Code Online (Sandbox Code Playgroud)

  • 或者`your_text [0 ... 30]` (18认同)
  • 所以基本上 3 个点(...) 意味着结束是排除的,2 个点(..) 意味着结束是包容的。 (3认同)

Sim*_*tti 201

使用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
Run Code Online (Sandbox Code Playgroud)

  • 要清楚,`-1`用于到达字符串的末尾,所以**`a [1 ..- 1]#=>"ello there"`**. (30认同)
  • 对某些人来说这可能是显而易见的,但是对于负面位置使用逗号是不可能的:'a [-4,-2]`.唯一有效的符号是两个点:`a [-4 ..- 2]`.学到了很多东西. (5认同)

apn*_*ing 24

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

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

例:

 truncate(@text, :length => 17)
Run Code Online (Sandbox Code Playgroud)

摘录很高兴知道,它可以让你显示文本的摘录像这样:

 excerpt('This is an example', 'an', :radius => 5)
 # => ...s is an exam...
Run Code Online (Sandbox Code Playgroud)

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

  • Ruby不是Rails. (8认同)

Ara*_*ray 10

如果你需要它在rails中你可以使用(源代码)

'1234567890'.first(5) # => "12345"
Run Code Online (Sandbox Code Playgroud)

还有最后一个(源代码)

'1234567890'.last(2) # => "90"
Run Code Online (Sandbox Code Playgroud)

或者从/到来检查(源代码):

"hello".from(1).to(-2) # => "ell"
Run Code Online (Sandbox Code Playgroud)