ruby - 如何使用 Ruby 的 gsub 函数替换字符串上过多的 '\n'

标签 ruby regex replace gsub

我有这个字符串:

string = "SEGUNDA A SEXTA\n05:24 \n05:48\n06:12\n06:36\n07:00\n07:24\n07:48\n\n08:12 \n08:36\n09:00\n09:24\n09:48\n10:12\n10:36\n11:00 \n11:24\n11:48\n12:12\n12:36\n13:00\n13:24\n13:48 \n14:12\n14:36\n15:00\n15:24\n15:48\n16:12\n16:36 \n17:00\n17:24\n17:48\n18:12\n18:36\n19:00\n19:48 \n20:36\n21:24\n22:26\n23:15\n00:00\n"

而且我想将所有出现的 \n\n 替换为只有一个 \n 并且如果可能的话我还想删除所有 "" 数字和换行符之间的(空格)\n

我正在尝试:

string.gsub(/\n\n/, '\n')

但它正在将 \n\n 替换为 \\n

谁能帮帮我?

最佳答案

真正的原因是因为单引号字符串不会转义特殊字符(如\n)。

string.gsub(/\n/, '\n')

它用'\'和'n'两个字符替换单个字符\n

你可以通过打印字符串来看出区别:

[302] pry(main)> puts '\n'
\n
=> nil

[303] pry(main)> puts "\n"

=> nil

[304] pry(main)> string = '\n'
=> "\\n"
[305] pry(main)> string = "\n"
=> "\n"

关于ruby - 如何使用 Ruby 的 gsub 函数替换字符串上过多的 '\n',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248853/

相关文章:

ruby-on-rails - 如何在 Ruby on Rails 中重新加载当前页面?

ruby-on-rails - 使用 Hotwire Rails 时如何显示设计登录表单错误

python - 正则表达式返回字符串中方括号中的整数

mysql - 将数字的中间值更改为 "xxxx"

php - 将混合字符串中的数字相乘

python - Pandas 映射到 TRUE/FALSE 作为字符串,而不是 bool 值

ruby - 为什么当命令执行某些错误时,我的 pry-byebug 包会给出如此多的输出?

ruby - 如何获取对象的名称?

regex - 写正则表达式的语法是否标准化

regex - powershell:删除字符串中的字符