【问题标题】:How can i use gsub to replace "0" (only)我如何使用 gsub 替换“0”(仅限)
【发布时间】:2011-05-02 21:05:18
【问题描述】:

gsub('$0\n','') 不起作用

我更喜欢类似的东西。我想: (注意 10 和 20 必须与 0 一起工作,而不是在其中被替换)。

If I have:
23
12
 0
15
 9
 0
10
20
 0


I want:
23
12

15
 9

10
20

【问题讨论】:

    标签: ruby-on-rails unix replace zero gsub


    【解决方案1】:

    您可能希望将其转换为数组以重新处理它,但同样的事情可以用正则表达式完成:

    string.gsub(/^\s+0+$/m, '')
    

    /m 部分是关键,它使表达式在多行模式下运行,即^$ 指的是一行的开头和结尾,而不是字符串的开头和结尾通常是这样的。

    【讨论】:

    • 这不起作用(没有错误但没有效果,它仍然留下零)。这实际上是 ruby​​ 循环的一部分。我试过gsub!但这给了一切空白。
    • gsub(/^\s+0+$/m, '') 没有,但是啊,但是这样做了,gsub(/^0$/m, '') 可能是红宝石差异?我会更新你的答案并检查它给你积分。
    • 啊,在你的输入中你有空格填充你的零,所以它是正则表达式的一部分。如果/^\s*0+$/m 是可选的,那么您可能正在寻找它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2017-10-13
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多