好的,我有这个字符串
Something 06/15/2009 some other data 33 77
我想像这样分开他们
Something
06/15/2009
some other data
33
77
任何想法干净的方法
答案 0 :(得分:5)
我会使用正则表达式(或用空格分割吗?)。
这是一个快速正则表达式,可以为你分割
([a-zA-Z0-9\/]*\s)
http://rubular.com/r/qWVj3yr3aw
编辑:没有注意到带有空格的一段数据。您仍然可以使用正则表达式,只需要澄清数据的一列“列”的开始和结束位置。
如果这是您正在寻找的数据,那么这里是数据的精确匹配(尽管有更好的方法,如果“其他一些数据”发生变化,考虑此声明并不是很有用。)
(\w+)\s([\w\/]+)\s(some other data)\s\s(\d*)\s(\d*)
答案 1 :(得分:1)
你可以尝试:
/(.+?)\s+(\d+\/\d+\/\d+)\s+(.+?)\s+(\d+)\s+(\d+)/
至少给出了你想要的例子。
<强>更新强>
让。+部分贪婪可能更好:
/(.+)\s+(\d+\/\d+\/\d+)\s+(.+)\s+(\d+)\s+(\d+)/
这样,'某事'或'其他一些数据'可以包括日期和数字。
答案 2 :(得分:0)
一种简单的方法是some_string.split(" ")
,以获取子串的数组。
"Something 06/15/2009 some other data 33 77".split(" ")
=> ["Something", "06/15/2009", "some", "other", "data", "33", "77"]