搜索并用扫描替换

时间:2011-03-24 02:59:37

标签: ruby

我想搜索并替换a中的某些数字 文本文件,用空格分隔 将它们合并在一起

喜欢

asdf asdf 1 2
3 asdf asdf asdf
2 3 asdf

asdf asdf 123
asdf asdf asdf
23 asdf

我尝试了以下操作,但它不起作用,我不确定如何最好地在文件中进行替换:

text = File.read("testfile.txt")
p text.scan(/([\d+\s+\d+]+)/)

2 个答案:

答案 0 :(得分:1)

实际上,您不需要\d+\d就足够了。

gsub(/(\d)\s+(?=\d)/, '\1')

如果您安装了oniguruma或正在使用ruby1.9,

gsub(/(?<=\d)\s+(?=\d)/, '')

答案 1 :(得分:1)

FN = 'thefile'
result = File.read(FN).gsub /(\d)\s+(?=\d)/, '\1'
open(FN, 'w') { |io| io.write(result) }