• 締切済み

Rubyで文字列の抽出

Rubyで質問があります。 AAAA;BBBB、CCCCC=DDDDD という文字列が存在したときに、 AAAAとBBBBとCCCCCとDDDDDの文字列を取得したいです。 splitは、特定の区切り文字しか対応していないようなので、複数の区切り文字を指定出来る方法はありませんでしょうか? 確かにsplitで地道に処理するより もうちょっと効率的な方法はないか知りたいです。

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

#1の方のアドバイスに従って作ってみました。 # 区切り文字は;,=のいずれかとする(全て半角) ------------------------------------- str = "AAAA;BBBB,CCCCC=DDDDD" elm = str.split(/[;,=]/) # elmに分割された内容が格納される p elm ---------------------------------- 実行結果 ["AAAA", "BBBB", "CCCCC", "DDDDD"] #1の方に感謝!!

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

……? (Ruby リファレンスマニュアルの String#split より引用開始) 第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、 結果を文字列の配列で返します。 第 1 引数 sep は以下のいずれかです。 正規表現 正規表現にマッチする部分で分割する。 特に、括弧によるグルーピングがあればそのグループにマッチした 文字列も結果の配列に含まれる (後述)。 (引用終了) ……ということですから、正規表現を使えば複数の区切り文字列を指定できるように思うのですが……。

参考URL:
http://doc.ruby-lang.org/ja/1.9.2/method/String/i/split.html
mochang
質問者

お礼

返信遅れて申し訳ありません。 正規表現が使えることを調べ切れておりませんでした。 ありがおとうございます。

関連するQ&A