我正在寻找可以解决以下问题的替代方案:
.detect
如果我正在寻找并且stringvalue
给定的值为132stringvalue
,它仍然会返回 true。我需要一个从字符串开头匹配所有内容的替代方法。除了正则表达式还有什么建议吗?
[1] pry(main)> %w[foo 456foo bar 123bar].detect {|e| e.to_i > 0}
=> "456foo"
[2] pry(main)> %w[foo 456foo bar 123bar].detect {|e| e.start_with?('123')}
=> "123bar"
您可以使用String#[]
(参见文档):
1.9.3p194 :001 > "123stringvalue"["stringvalue"]
=> "stringvalue"
1.9.3p194 :002 > "123stringvalue"["blah"]
=> nil
如果存在则返回子字符串,nil
否则返回。