0

わかりましたので、私はこの文字列を持っています

Something 06/15/2009 some other data  33 77

そして、私はこのように分離したい

Something
06/15/2009
some other data  
33 
77

これを行うためのクリーンな方法のアイデア

4

3 に答える 3

5

私は正規表現を使用します(またはスペースで分割しますか?)。

これはあなたのためにそれを分割する簡単な正規表現です

([a-zA-Z0-9\/]*\s)

http://rubular.com/r/qWVj3yr3aw

編集:スペースを含む1つのデータに気づきませんでした。データの1つの「列」の開始位置と終了位置を明確にする必要があるだけで、正規表現を引き続き使用できます。

それがあなたが探しているものである場合、これはデータの正確な一致です(ただし、「他のデータ」が変更された場合、このステートメントはあまり役に立たないと考えるより良い方法があります..)

(\w+)\s([\w\/]+)\s(some other data)\s\s(\d*)\s(\d*)

http://rubular.com/r/yNEBNKq97N

于 2012-08-29T13:57:17.877 に答える
1

あなたは試すことができます:

/(.+?)\s+(\d+\/\d+\/\d+)\s+(.+?)\s+(\d+)\s+(\d+)/

ルーブルの例

少なくとも与えられた例に必要なものを提供します。

アップデート:

.+ 部分を貪欲にする方が良いかもしれません:

/(.+)\s+(\d+\/\d+\/\d+)\s+(.+)\s+(\d+)\s+(\d+)/

このようにして、「何か」または「その他のデータ」に日付と数値を含めることができます。

于 2012-08-29T14:17:15.890 に答える
0

それを行う簡単な方法はsome_string.split(" ")、部分文字列の配列を取得することです。

"Something 06/15/2009 some other data  33 77".split(" ")
=> ["Something", "06/15/2009", "some", "other", "data", "33", "77"]
于 2012-08-29T14:17:33.080 に答える