Saya memiliki string ini:
"some text\nandsomemore"
Saya perlu menghapus "\ n" darinya. Saya sudah mencoba
"some text\nandsomemore".gsub('\n','')
tapi tidak berhasil. Bagaimana saya melakukannya? Terima kasih sudah membaca.
Anda harus menggunakan "\n"
bukan '\n'
di gsub Anda. Tanda kutip yang berbeda berperilaku berbeda.
Tanda kutip ganda "
memungkinkan perluasan karakter dan interpolasi ekspresi yaitu. mereka membiarkan Anda menggunakan karakter kontrol lolos seperti \n
untuk mewakili nilai sebenarnya, dalam hal ini, baris baru , dan memungkinkan penggunaan #{expression}
sehingga Anda dapat menenun variabel dan, yah, hampir semua ekspresi ruby yang Anda suka ke dalam teks.
Sementara di sisi lain, tanda kutip tunggal '
memperlakukan string secara harfiah, jadi tidak ada ekspansi, penggantian, interpolasi atau apa pun yang Anda miliki.
Dalam kasus khusus ini, lebih baik menggunakan metode .delete
atau .tr
String untuk menghapus baris baru .
tr
adalah pilihan yang lebih baik untuk tugas ini, tetapi seperti yang saya katakan, saya pikir lebih baik menunjukkan perbedaan dalam tanda kutip tunggal dan ganda ketika saya menjawab.Saat Anda ingin menghapus string, daripada menggantinya, Anda dapat menggunakan
String#delete
(atau setara mutatornyaString#delete!
), misalnya:x
sekarang sama dengan "foofoo"Dalam kasus khusus
String#delete
ini lebih mudah dibaca daripadagsub
karena Anda tidak benar-benar mengganti string dengan apapun.sumber
delete
tidak merusak seperti yang ditunjukkan di sini. Ini mengembalikan string baru.Jika Anda ingin atau tidak keberatan menghapus semua spasi di depan dan di belakang dari string Anda, Anda dapat menggunakan
strip
metode ini.seperti yang disebutkan di sini .
edit Judul asli untuk pertanyaan ini berbeda. Jawaban saya untuk pertanyaan awal.
sumber
strip
hanya menghapus spasi kosong di depan dan di belakang: ruby-doc.org/core-1.9.3/String.html#method-i-strip-21Anda tidak membutuhkan ekspresi reguler untuk ini. Gunakan tr:
sumber
replace
hanya mengubah string ke yang baru, seperti tugas variabel; sedangkantr
karakter-demi-karakter menemukan dan mengganti global.gunakan
chomp
ataustrip
fungsi dari Ruby:sumber
strip
hanya menghapus spasi kosong di depan dan di belakang - ruby-doc.org/core-1.9.3/String.html#method-i-strip-21Lihat di sini:
sumber