Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

3 วิธีที่ยอดเยี่ยมในการใช้วิธี Gsub ของ Ruby

มาว่ากันเรื่อง gsub . ของ Ruby วิธีการและวิธีการใช้ ขั้นแรก คุณต้องมีสตริงเพื่อเล่นด้วยวิธีนี้

ทำไม?

เพราะจุดรวมของ gsub คือการแทนที่ส่วนของสตริง

อันที่จริง :

“sub” ใน “gsub” ย่อมาจาก “substitute” และ “g” ย่อมาจาก “global”

นี่คือสตริงตัวอย่าง :

str = "white chocolate"

สมมติว่าเราต้องการแทนที่คำว่า "ขาว" ด้วยคำว่า "มืด"

ตามนี้ :

str.gsub("white", "dark")

นี่คือคำพูด :

รับสตริง str , แทนที่คำแรกทั้งหมดที่เกิดขึ้น (white ) ด้วยคำที่สอง (dark )

ซึ่งหมายความว่าเราจะได้กินช็อคโกแลตที่ดีขึ้นมาก

โอ้ เดี๋ยวก่อน มันเป็นแค่สตริง

เราไม่สามารถกินสิ่งนั้นได้! 🙂

ยังไงก็…

gsubของ Ruby method ทำได้มากกว่าแค่ การแทนที่ .

มาดูตัวอย่างกัน

แทนที่รูปแบบด้วยนิพจน์ทั่วไป

แทนที่คำเดียวก็ได้

แต่ถ้าคุณสามารถเปลี่ยนรูปแบบได้ล่ะ

ถูกใจ :

ปี ที่อยู่อีเมล หมายเลขโทรศัพท์ ฯลฯ

ทำได้!

นี่คือตัวอย่าง :

"a1".gsub(/\d/, "2")

# "a2"

อาร์กิวเมนต์แรกคือนิพจน์ทั่วไป และมันมากเกินไปที่จะกล่าวถึงที่นี่

แต่เป็นภาษาที่ตรงกับรูปแบบ .

ในกรณีนี้ \d ค้นหาตัวเลข เช่น ตัวเลข “1” ใน “a1”

คุณยังสามารถทำสิ่งนี้ได้ :

"a1".gsub(/(\w)(\d)/, '\2\1')

ซึ่งส่งผลใน :

"1a"

เราเปลี่ยนคำสั่ง!

ใช้งานได้โดยใช้ฟีเจอร์ที่เรียกว่า “จับภาพกลุ่ม”

เราสามารถใช้กลุ่มเป็น \1 สำหรับกลุ่มแรก \2 สำหรับกลุ่มที่สอง เป็นต้น

สร้างกลุ่มด้วยวงเล็บ

Gsub ขั้นสูงพร้อมบล็อก

สิ่งที่น่าสนใจจริงๆ เมื่อคุณเริ่มใช้ gsub กับบล็อก

ทำไม?

เพราะภายในบล็อก คุณสามารถใช้ตรรกะในการตัดสินใจว่าจะแทนที่บางสิ่งอย่างไร

แทนที่จะใช้ค่าคงที่

ตัวอย่างเช่น :

"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }

เราพบสัตว์ที่มี \w+ ซึ่งหมายถึง “อักขระที่เป็นตัวอักษรและตัวเลขคละกันอย่างน้อยหนึ่งตัว”

แล้ว :

  • ถ้าเป็น "สุนัข" เราจะแทนที่ด้วย "แมว"
  • ถ้าคำนั้นคือ อย่างอื่น , เราแทนที่ด้วย “dog”

ตรรกะแบบนี้ใช้กับค่าคงที่ไม่ได้ พารามิเตอร์ตัวที่ 2 ของ gsub

แทนที่คำหลายคำด้วยแฮช

หากคุณมีรายการการแทนที่เพื่อให้คุณสามารถใช้แฮชได้

ถูกใจสิ่งนี้ :

colors = {
  "B" => "blue",
  "G" => "green",
  "R" => "red"
}

การทำงานนี้เหมือนกับพจนานุกรมการแปล โดยที่คีย์จะถูกแทนที่ด้วยค่าของคีย์เหล่านั้น

นี่คือตัวอย่าง :

"BBBGR".gsub(/\w/, colors)

ซึ่งส่งผลใน :

"bluebluebluegreenred"

ตรวจสอบให้แน่ใจว่าอาร์กิวเมนต์ที่ 1 ของคุณจะตรงกับคีย์

ในกรณีนี้ \w จับคู่อักขระแต่ละตัว ดังนั้นจะจับคู่กับ "B" แล้วแทนที่ด้วย "สีน้ำเงิน"

สรุป

คุณได้เรียนรู้เกี่ยวกับวิธีการ gsub ใน Ruby แล้ว! เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คุณสามารถแทนที่หรือแทนที่อักขระภายในสตริงได้

มีประโยชน์หลายอย่าง :

  • การลบอักขระที่ไม่ถูกต้อง (โดยทำให้อาร์กิวเมนต์ที่ 2 เป็นสตริงว่าง)
  • การแทนที่ตัวยึดตำแหน่งและตัวย่อด้วยค่าเต็ม
  • การใช้รูปแบบและตรรกะในการเปลี่ยนสตริง

3 วิธีที่ยอดเยี่ยมในการใช้วิธี Gsub ของ Ruby

ตอนนี้ถึงตาคุณที่จะฝึกฝนด้วยวิธีนี้ เพื่อให้คุณสร้างองค์ความรู้ใหม่ได้

ขอบคุณที่อ่านนะคะ 🙂