Ruby - 如何从字符串中选择一些字符

时间:2011-06-21 10:41:32

标签: ruby string function char substr

我正在尝试找到一个选择的功能,例如前100个字符串的字符串。在PHP中,存在 substr function

Ruby有一些类似的功能吗?

3 个答案:

答案 0 :(得分:118)

尝试foo[0...100],任何范围都可以。范围也可以消极。它是Ruby的well explained in the documentation

答案 1 :(得分:35)

使用[] - 运算符(docs):

foo[0, 100]  # Get 100 characters starting at position 0
foo[0..99]   # Get all characters in index range 0 to 99 (inclusive!)
foo[0...100] # Get all characters in index range 0 to 100 (exclusive!)

使用.slice方法(docs):

foo.slice(0, 100)  # Get 100 characters starting at position 0
foo.slice(0...100) # Behaves the same as operator [] 

为了完整性:

foo[0]         # Returns the indexed character, the first in this case
foo[-100, 100] # Get 100 characters starting at position -100
               # Negative indices are counted from the end of the string/array
               # Caution: Negative indices are 1-based, the last element is -1
foo[-100..-1]  # Get the last 100 characters in order
foo[-1..-100]  # Get the last 100 characters in reverse order
foo[-100...foo.length] # No index for one beyond last character

Update for Ruby 2.6Endless ranges现在在这里(截至2018-12-25)!

foo[0..]      # Get all chars starting at the first. Identical to foo[0..-1]
foo[-100..]   # Get the last 100 characters

答案 2 :(得分:-1)

还有更多的方法可以做到这一点。

根据您的情况,您愿意获得前100个字符,因此只需使用.first(100)

Link to documentation

如果需要更多自定义选项,请参见此article