=
純粋に好奇心から、文字列の最初の記号の後に部分文字列を単純に取得するよりエレガントな方法はありますか?次の作品はお返しします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
メソッドでは、そのための追加のチェックが必要です(あまりエレガントではありません)。