我有這個字符串:如何從Ruby字符串中刪除字符串「 n」?
"some text\nandsomemore"
我需要從它刪除 「\ n」。我試過
"some text\nandsomemore".gsub('\n','')
但它不起作用。我該怎麼做?謝謝閱讀。
我有這個字符串:如何從Ruby字符串中刪除字符串「 n」?
"some text\nandsomemore"
我需要從它刪除 「\ n」。我試過
"some text\nandsomemore".gsub('\n','')
但它不起作用。我該怎麼做?謝謝閱讀。
你需要在你的GSUB使用"\n"
不'\n'
。不同的引號標記行爲有所不同。
雙引號"
允許字符膨脹和表達插值即他們讓你使用轉義字符控制像\n
代表其真實價值,在這種情況下,換行符,並允許使用的#{expression}
這樣你就可以編織變量,那麼,幾乎你想進入任何文字表達的紅寶石。
而在另一方面,單引號'
處理字符串字面,所以沒有擴充,更換,插或者你有什麼。
在這種特殊情況下,最好是請使用.delete
或.tr
字符串的方法來刪除換行符。
你並不需要這樣的正則表達式。使用TR:
"some text\nandsomemore".tr("\n","")
當要刪除一個字符串,而不是取代它,你可以使用String#delete
(或其突變相當於String#delete!
),例如:
x = "foo\nfoo"
x.delete!("\n")
x
現在等於 「foofoo」
在這種特殊情況下String#delete
比gsub
更具可讀性,因爲你實際上並沒有與任何替換字符串。
至少在Ruby 1.9.3中,'delete'不具有破壞性,如此處所示。它返回一個新的字符串。 – 2013-08-01 15:27:43
斑點。我已經更新了該代碼片段以使用更改版本String#delete!而不是String#delete – 2013-11-25 15:42:56
如果你想要或不介意所有領先的,並從您的字符串刪除您可以使用strip
方法尾隨空白。
" hello ".strip #=> "hello"
"\tgoodbye\r\n".strip #=> "goodbye"
如上所述here。
編輯原標題這個問題是不同的。我的回答是針對原始問題。
這並不回答這個問題。 'strip'只能刪除前導和尾隨空白:http://ruby-doc.org/core-1.9.3/String.html#method-i-strip-21 – thelostspore 2015-03-11 20:31:27
@mvdanj是的,給出這個特定問題的細節沒有回答,但它確實回答了僅基於標題的問題。我懷疑這就是爲什麼人們發現它很有用。 – ThomasW 2015-07-28 01:13:56
標題從我最初回答的時候開始改變。 – ThomasW 2015-10-28 01:15:30
使用chomp
或strip
從紅寶石功能:
"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"
這不回答問題。 'strip'只刪除前後的空格 - http://ruby-doc.org/core-1.9.3/String.html#method-i-strip-21 – thelostspore 2015-03-11 20:30:25
chomp是最好的方式......不能相信在chomp方法中,這種方法的效率低於 – user1735921 2016-08-19 22:47:33
,如果它們存在,\ n和\ r將從str的結尾移除,而不是在中間。所以這不解決OP問題 – silva96 2017-04-26 19:15:54
正確的語法真的會。gsub(/ \ n /,「」) – 2012-07-26 19:57:18
@David是正確的。但是,我認爲重要的是要證明引用有所不同,因爲這會對Ben產生好處。請注意,大衛,這可能更像是一種風格問題,而不是「正確」。就我個人而言,我認爲'tr'是這項任務的更好選擇,但正如我所說,我認爲在我回答時指出單引號和雙引號的區別更好。 – ocodo 2012-07-30 00:06:44