回答
delete
刪除您交給它的字符串中出現的所有字符(請參閱ruby-doc)。你需要的是像
"a, , b, c".gsub(/(\s*,\s*)+/, ', ')
UPDATE:
正如下面的評論中提到,該字符串是一個join(', ')
的結果。在這種情況下,更好的方法是在加入之前刪除空/ nil
元素,即
array.compact.join(', ') # if some elements are nil
array.delete_if(:&empty?).join(', ') # if some elements are ''
array.compact.delete_if(:&empty?).join(', ') # if both can occur
根據ruby api刪除除去了在參數中的所有字符。 在你的情況下,它既是空格又是逗號。
來自文檔(釋義):String#delete
單獨刪除所有字符,所以在你的情況下它將刪除所有空格和所有逗號。你想要的可能是"a, , b, c".gsub(' , ', '')
。
是的,更接近原始嘗試並且沒有正則表達式(+1)。但是,使用正則表達式,您可以更通用地修復可能的逗號錯誤。例如。你的解決方案將''a,b「'轉移到'」ab「'。 –
這是真的,但目前還不清楚OP的意圖。 –
我想出了以下內容:
"a, , b, c".gsub(/\s+,/, "")
其執行以下操作:
irb(main):035:0> "a, , b, c".gsub(/\s+,/, "")
=> "a, b, c"
這不會完成OP想要的。 –
@ MarnenLaibow-Koser:哦,是的,它的確如此。它按要求輸出'「a,b,c」'。其他一切都只是猜測。 –
- 1. 紅寶石GSUB工作不正常
- 2. 刪除逗號和空白紅寶石
- 3. 刪除「」從線紅寶石
- 4. 紅寶石,如果條件不正常工作的JavaScript文件
- 5. 紅寶石:。每次迭代工作不正常
- 6. 紅寶石1.9帶不去除空白
- 7. 紅寶石 - 如何刪除一些字符後的空間?
- 8. 紅寶石反向引用不正常
- 9. 使用「每當」紅寶石寶石不工作的Cron作業
- 10. 紅寶石TweetStream位置功能無法正常工作
- 11. 紅寶石 - 直到循環似乎沒有正常工作
- 12. 紅寶石魔術編碼不工作
- 13. 紅寶石 - 超時工作不
- 14. 紅寶石需求不工作
- 15. 紅寶石:水龍頭不工作?
- 16. 紅寶石每個循環不工作
- 17. 紅寶石 - 重新定義工作不
- 18. 紅寶石模除
- 19. 撬寶石不工作的紅寶石2它卡住了
- 20. 紅寶石 - 從字符串中刪除
- 21. 刪除紅寶石用戶記錄
- 22. 紅寶石文件刪除黃瓜
- 23. 刪除。從十進制紅寶石
- 24. 紅寶石寶石和紅寶石之間的體系結構不匹配?
- 25. 紅寶石savon和wsdl命名空間
- 26. 紅寶石陣列中的空間%w
- 27. OSX手動刪除紅寶石和寶石
- 28. 刪除帶有的iconv變音符號的紅寶石在不工作
- 29. 紅寶石刪除常見元素集合
- 30. 在紅寶石串中的逗號前面刪除空格
不需要正則表達式。 –
@ MarnenLaibow-Koser:你有評論的機器人嗎? ;-)對於我的建議,你需要一個正則表達式(或者更多的代碼)。但問題的規範並不十分清楚。 –
有什麼區別? – Victor