Ruby:
提取子字符串
How to: (如何执行)
Ruby提供了几种提取子字符串的方法。下面看几个例子:
# 使用 [] 和 slice 方法
str = "Hello, Ruby!"
substring1 = str[7, 4] # 从位置7开始取4个字符
puts substring1 # => "Ruby"
substring2 = str.slice(0..4) # 使用范围对象获取子字符串
puts substring2 # => "Hello"
# 使用正则表达式和 match 方法
match_data = /R(.*)/.match(str)
puts match_data[1] # => "uby!"
输出:
Ruby
Hello
uby!
Deep Dive (深入探究)
提取子字符串在编程的世界里是基本功。在Ruby早期版本中,[]
和 slice
方法已被引入。两者可以互换,但 []
方法使用更为频繁,因为它更简短更直观。
其他语言有类似Ruby中的 []
方法。Python有切片(slice),Java有 substring()
方法。它们的概念相同,只是实现方式有所不同。Ruby的 slice
方法可以说是受到Python切片的启发。
在Ruby的实现中,当用 []
方法提取子字符串时,负数索引代表从字符串末尾开始计数。如果索引超出字符串范围,则返回 nil
。
还可以使用正则表达式匹配模式提取子字符串。用 match
方法时,会返回一个MatchData对象,从中可以通过位置索引访问匹配的子字符串。