2017-07-27 18 views
-1

で文字列の配列に文字列を解析:は、私は、この形式の文字列を持っているRubyの

"dataA\r\r\n" + "dataB\r\r\n" + "dataC\r\r\n" + "dataD" 

最後のデータが"\r\r\n"を持っていません。

私はそれを解析し、それに文字列の配列を変更したいと思います:

["dataA", "dataB", "dataC", "dataD"] 

私はこれを行うための最善の方法は何か疑問に思って。

+0

'dataC'を2回しませんか? –

+0

さて、それは私の間違いでした。私はそれを変更しました。 –

+0

4つの文字列があります。 –

答えて

3
str = "dataA\r\r\n" + "dataB\r\r\n" + "dataC\r\r\n" + "dataD" 
    #=> "dataA\r\r\ndataB\r\r\ndataC\r\r\ndataD" 

str.split 
    #=> ["dataA", "dataB", "dataC", "dataD"] 

String#split用ドキュメントの第四項を参照してください。 Rubyの「空白」の定義は、String#stripの文書に記載されています。水平タブ、改行、垂直タブ、フォームフィード、キャリッジリターン、スペース:

str = "a" + "b\t\t" + "c\n\n\n" + "d\v\v" + "e\f" + "f\r\r" + "g " + "h" 

str.split 
    #=> ["ab", "c", "d", "e", "f", "g", "h"] 

についてしたがって、これらのバックスラッシュ文字の定義については、「バックスラッシュ記法」hereため

str.split(/[\t\n\v\f\r \0]+/) 
    #=> ["ab", "c", "d", "e", "f", "g", "h"] 

検索と同等です。

4

あなたは、それぞれの値の間に共通点である\r\r\nを渡すことによって、あなたの連結文字列を分割することができます:

a = "dataA\r\r\n" + "dataB\r\r\n" + "dataC\r\r\n" + "dataD" 
p a.split(/\r\r\n/) 
# => ["dataA", "dataB", "dataC", "dataD"] 
+0

ありがとう、ちょうど私が必要なもの。 –

関連する問題