怎样去掉空格?

怎样去掉空格?

大家好,我现在需要将下列左边的格式转换为右边的格式.
左边的格式是这样的:字母前面有一个空格,字母和后面的数字之间也有一个或两个空格,数字后面还有一个或两个空格.
CB 859-2004 =>CB 859-2004
CB/T 145-1994 =>CB/T 145-1994
CBM 1001-1981 =>CBM 1001-1981
GB 2508-1989 =>GB 2508-1989
GB/T 2506-2005 =>GB/T 2506-2005
右边的格式是去掉字母前面和数字后面的空格,只在字母和数字之间留一个空格.
我的思路是先用正则表达式将空格全部删除,然后在字母和数字之间插入一个空格,可是这里的字母判断有四种类型:CB,CB/T,CBM,GB,GB/T,我不知道如何判断,望高手指教.
这里我是将原始格式的内容(即上面说的左边的)存在了一个txt文件中,希望将转换好格式的内容(即上面说的右边的)存在另一个txt文件中.希望得到大家的帮助,十分谢谢

文件的操作, 请参考一些教程.

[Copy to clipboard] [ - ]
你会模式匹配吗?
用那个也可以完成你的需要。
str.sub(/^[ ]*/,'')
引用:
原帖由 5swords 于 2008-5-14 14:27 发表
文件的操作, 请参考一些教程." CB 859-2004 ".split(' ').join(' ') #=>"CB 859-2004"
谢谢各位的帮助,我采用了4楼提供的方法,的确达到了预计的表达效果,可是有个问题,就是为什么是倒序输出呢?原始的顺序是:
GB/T 5312-1999
CB/T 3926-1999
CB/T 3780-1997
CB/T 3590-1994
可是格式调整后的顺序是:
CB/T 3590-1994
CB/T 3780-1997
CB/T 3926-1999
GB/T 5312-1999
也就是第一个跑到最后一个了。
因为我是分别输入一个txt文本,然后将格式调整好的以另一个文本输出的,因为还有其他用途,不希望倒序输出,请各位再帮我看看,我是ruby的超级菜鸟,但我正在努力学好它。
这个, 要看源码才知道问题. 你贴出来看看.
file_cb=File.open("#{Dir.getwd}/test.txt")
file_cb.each{|line|line_no=file_cb.lineno.to_s.rjust(4)
re=/^[ ]*/
line.gsub!(re,"")
File.new('d:\test\test1.txt',"a").puts line
}
file_cb.close
备注:test.txt为格式未调整的文件,即:
GB/T 5312-1999
CB/T 3926-1999
CB/T 3780-1997
CB/T 3590-1994
test1.txt为调整好格式后保存的文档,输出的内容为:
CB/T 3590-1994
CB/T 3780-1997
CB/T 3926-1999
GB/T 5312-1999
可以看出结果是倒着输出了,我希望仍按原先的顺序输出。不知是什么原因,关于正则表达式,我不是很熟练,希望给与指点!


[Copy to clipboard] [ - ]
re=/^[ ]*/,这个不是正则表达式吗?我一直认为是呢?那这是什么匹配呢?麻烦你告诉我,我是刚接触ruby语言,Ruby 语言入门教程 v1.0还没有全看完。另外输出结果为什么是倒着输出的?可以有什么方法使它按原来的顺序输出吗?谢谢!