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

编辑:没有注意到带有空格的一条数据。您仍然可以使用正则表达式,您只需要澄清一个“列”数据的开始和结束位置。

如果这就是您要查找的数据,这是数据的完全匹配(尽管有更好的方法考虑到如果“其他数据”发生更改,则此语句不是很有用..)

(\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 回答