【发布时间】:2017-09-20 12:12:51
【问题描述】:
使用 Ruby 2.4。我有一个字符串数组。我想从数组中每个项目的末尾剥离非中断和中断空间,并将多个连续出现的空白替换为单个空白。我以为下面是方法,但我得到一个错误
> words = ["1", "HUMPHRIES \t\t\t\t\t\t\t\t\t\t\t\t\t\t, \t\t\t\t\t\t\t\t\t\t\t\t\tJASON", "328", "FAIRVIEW, OR (US)", "US", "M", " 27 ", "00:27:30.00 \t\t\t\t\t\t\t\t\t\t\t \n"]
> words.map{|word| word ? word.gsub!(/\A\p{Space}+|\p{Space}+\z/, '').gsub!(/[[:space:]]+/, ' ') : nil }
NoMethodError: undefined method `gsub!' for nil:NilClass
from (irb):4:in `block in irb_binding'
from (irb):4:in `map'
from (irb):4
from /Users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.2/lib/rails/commands/console.rb:65:in `start'
from /Users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.2/lib/rails/commands/console_helper.rb:9:in `start'
from /Users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:78:in `console'
from /Users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
from /Users/nataliab/.rvm/gems/ruby-2.4.0/gems/railties-5.0.2/lib/rails/commands.rb:18:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
如何正确替换连续出现的空白并将其从数组中的每个单词中去除?
【问题讨论】:
-
谢谢,但这个答案没有解决如何从数组中每个单词的末尾删除非中断/中断空格。
-
@Natalia 我们可以稍微整理一下您的问题吗?去掉irb命令提示符
2.4.0 :003等;在输出前添加#并更正您的拼写错误。谢谢。 -
有
gsub的替代品 -tr,deletestackoverflow.com/questions/26749065/…