裏面假設我們有串這樣的:刪除多個空格和換行字符串
Hello, my\n name is Michael.
我如何刪除新的生產線和後剝去那些空間成一個字符串內得到這個?
Hello, my name is Michael.
裏面假設我們有串這樣的:刪除多個空格和換行字符串
Hello, my\n name is Michael.
我如何刪除新的生產線和後剝去那些空間成一個字符串內得到這個?
Hello, my name is Michael.
退房的Rails squish
方法:
最簡單的方法很可能是
s = "Hello, my\n name is Michael."
s.split.join(' ') #=> "Hello, my name is Michael."
哦,這很棘手,但它的工作就像一個魅力。 – Kreeki
使用String#gsub:
s = "Hello, my\n name is Michael."
s.gsub(/\s+/, " ")
這個表達式將取代1個或多個空格1個空格例如,PS \s
將取代所有包含空格的字符\s\t\r\n\f
:
a_string.gsub!(/\s+/, ' ')
同樣只回車
str.gsub!(/\n/, " ")
先用空格替換所有\n
,然後使用刪除多個空格正則表達式。
謝謝!這爲我的目的,刪除多個空格,但保持單詞之間的單個空間。 –
爲了說明建於擠壓 RUBYS:
string.gsub("\n", ' ').squeeze(' ')
只需注意:擠壓會壓縮所有以多個字符運行的字符串。所以 「擠壓我的應用程序的副本」.squeeze =>「吱吱叫我的應用程序的副本」 – charliepark
但擠壓('')'只是擠壓空間。 ''擠壓我的應用程序的副本「.squeeze('')=>」擠壓我的應用程序的副本「。 – steenslag
啊。好點子! – charliepark
試試這個:
s = "Hello, my\n name is Michael."
s.gsub(/\n\s+/, " ")
優雅,謝謝! – Vlad
這實際上是最好的「平原紅寶石」的答案,並適用於從多行字符串剝離領先空間。 –
Use squish
currency = " XCD"
str = currency.squish
str = "XCD" #=> "XCD"
最簡單的最優雅的解決方案。謝謝。但有一件事,這個方法在Rails中定義,所以它只能在Rails應用程序中工作,幸運的是,這是我的情況。 – Kreeki
酷一個:)從來沒有聽說過它 – fl00r
由於Kreeki有點不清楚,這是一個Rails方法,而不是Ruby方法。 – 2013-04-20 07:31:11