ฉันมีสตริงนี้:
"some text\nandsomemore"
ฉันต้องการลบ "\ n" ออกจากมัน ฉันพยายามแล้ว
"some text\nandsomemore".gsub('\n','')
แต่มันไม่ได้ผล ฉันต้องทำอย่างไร? ขอบคุณที่อ่าน.
ฉันมีสตริงนี้:
"some text\nandsomemore"
ฉันต้องการลบ "\ n" ออกจากมัน ฉันพยายามแล้ว
"some text\nandsomemore".gsub('\n','')
แต่มันไม่ได้ผล ฉันต้องทำอย่างไร? ขอบคุณที่อ่าน.
คำตอบ:
คุณจำเป็นต้องใช้"\n"
ไม่ได้'\n'
ใน gsub ของคุณ เครื่องหมายคำพูดที่แตกต่างกันทำงานแตกต่างกัน
เครื่องหมายคำพูดคู่"
อนุญาตให้ขยายอักขระและการแก้ไขนิพจน์เช่น พวกเขาให้คุณใช้อักขระควบคุมที่ใช้ Escape \n
เพื่อแทนค่าที่แท้จริงของพวกเขาในกรณีนี้ขึ้นบรรทัดใหม่และอนุญาตให้ใช้#{expression}
เพื่อให้คุณสามารถสานตัวแปรและนิพจน์ทับทิมที่คุณชอบลงในข้อความได้ดีทีเดียว
ในทางกลับกันเครื่องหมายคำพูดเดี่ยวจะ'
ปฏิบัติต่อสตริงอย่างแท้จริงดังนั้นจึงไม่มีการขยายการแทนที่การแก้ไขหรือสิ่งที่คุณมี
เฉพาะในกรณีนี้มันจะดีกว่าที่จะใช้อย่างใดอย่างหนึ่ง.delete
หรือ.tr
วิธี String ลบบรรทัดใหม่
tr
เป็นทางเลือกที่ดีกว่าสำหรับงานนี้ แต่อย่างที่ฉันพูดฉันคิดว่ามันจะดีกว่าที่จะชี้ให้เห็นความแตกต่างของเครื่องหมายคำพูดเดี่ยวและคู่เมื่อฉันตอบ
เมื่อคุณต้องการลบสตริงแทนที่จะแทนที่คุณสามารถใช้String#delete
(หรือสิ่งที่เทียบเท่ามิวเตเตอร์String#delete!
) เช่น:
x = "foo\nfoo"
x.delete!("\n")
x
ตอนนี้เท่ากับ "foofoo"
ในกรณีเฉพาะนี้String#delete
สามารถอ่านได้มากกว่าgsub
เนื่องจากคุณไม่ได้แทนที่สตริงด้วยอะไรเลย
delete
จะไม่ทำลายล้างตามที่ระบุไว้ที่นี่ ส่งคืนสตริงใหม่
หากคุณต้องการหรือไม่สนใจที่จะนำช่องว่างที่นำหน้าและต่อท้ายออกจากสตริงของคุณคุณสามารถใช้strip
วิธีนี้ได้
" hello ".strip #=> "hello"
"\tgoodbye\r\n".strip #=> "goodbye"
แก้ไขชื่อเดิมของคำถามนี้แตกต่างกัน คำตอบของฉันคือคำถามเดิม
strip
ลบเฉพาะช่องว่างที่นำหน้าและต่อท้าย: ruby-doc.org/core-1.9.3/String.html#method-i-strip-21
คุณไม่จำเป็นต้องมีนิพจน์ทั่วไปสำหรับสิ่งนี้ ใช้ tr:
"some text\nandsomemore".tr("\n","")
replace
เพียงแค่เปลี่ยนสตริงเป็นสตริงใหม่เช่นการกำหนดตัวแปร ในขณะที่tr
เป็นการค้นหาและแทนที่โกลบอลแบบอักขระโดยอักขระ
ใช้chomp
หรือstrip
ฟังก์ชั่นจาก Ruby:
"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"
strip
ลบเฉพาะช่องว่างที่นำหน้าและต่อท้าย - ruby-doc.org/core-1.9.3/String.html#method-i-strip-21