重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Rubyで質問があります。

AAAA;BBBB、CCCCC=DDDDD という文字列が存在したときに、
AAAAとBBBBとCCCCCとDDDDDの文字列を取得したいです。
splitは、特定の区切り文字しか対応していないようなので、複数の区切り文字を指定出来る方法はありませんでしょうか?

確かにsplitで地道に処理するより
もうちょっと効率的な方法はないか知りたいです。

A 回答 (2件)

#1の方のアドバイスに従って作ってみました。


# 区切り文字は;,=のいずれかとする(全て半角)
-------------------------------------
str = "AAAA;BBBB,CCCCC=DDDDD"
elm = str.split(/[;,=]/)
# elmに分割された内容が格納される
p elm
----------------------------------
実行結果
["AAAA", "BBBB", "CCCCC", "DDDDD"]

#1の方に感謝!!
    • good
    • 0

……?



(Ruby リファレンスマニュアルの String#split より引用開始)
第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、 結果を文字列の配列で返します。

第 1 引数 sep は以下のいずれかです。
正規表現
正規表現にマッチする部分で分割する。 特に、括弧によるグルーピングがあればそのグループにマッチした 文字列も結果の配列に含まれる (後述)。
(引用終了)

……ということですから、正規表現を使えば複数の区切り文字列を指定できるように思うのですが……。

参考URL:http://doc.ruby-lang.org/ja/1.9.2/method/String/ …
    • good
    • 0
この回答へのお礼

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

ありがおとうございます。

お礼日時:2011/11/29 22:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!