纯粹出于好奇,有没有更优雅的方法来简单地获取字符串中第一个=
符号之后的子字符串?以下工作回馈name=bob
:
string = "option=name=bob"
string[string.index('=')+1..-1]
只是感觉不是很Ruby。这也有效:
string.split('=', 2)[1]
同样,不是很优雅,尤其是因为split
正在做额外的不必要的工作。正则表达式是答案吗?对于在字符串中查找单个字符位置的简单性,我觉得这有点矫枉过正:
string.match('=(.*)')[1]
我不得不想象这是一个非常普遍的情况,不是有string.after('=')
类型方法吗?考虑到这种操作在 Web 上的使用频率,Ruby on Rails 是否提供了类似的功能?
更新:忘记提及未找到符号时的情况,nil
或者应该返回空字符串。但是正则表达式机制和.index
方法需要额外检查(所以不太优雅)。