• ベストアンサー

Ruby 最初のセパレータで文字列を二つに分解

Rubyで、どうか書いたらよいですか? 文字列を最初(最左)の=で分割し、x,yにそれぞれを代入したいです。 例)"hoge=1&piyo=2" x => "hoge" y => "1&piyo=2" また、hoge=のように=の右が無い場合、yに""を代入したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

splitは分割数の上限を指定することができます。 irb(main):010:0> "hoge=1&piyo=2".split('=', 2) => ["hoge", "1&piyo=2"] irb(main):011:0> "hoge=".split('=', 2) => ["hoge", ""] irb(main):012:0> x, y = "hoge=".split('=', 2) => ["hoge", ""] irb(main):013:0> x => "hoge" irb(main):014:0> y => "" irb(main):015:0>

kingfruits
質問者

お礼

いつもお世話になります(^^; 一発ですね。rubyは便利ですね。 ありがとうございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

一旦バラして、つなぐのが楽でしょうかね。 x, *w = "hoge=1&piyo=".split(/=/) y = w.join('=') "hoge=" の時もOKです。

kingfruits
質問者

お礼

なるほどです。 多重代入の*って、こういうふうに使うんですね。 ありがとうございました。

関連するQ&A