การค้นหาและแทนที่ข้อความ

Lua:
การค้นหาและแทนที่ข้อความ

วิธีการ:

ฟังก์ชั่น string.gsub ใน Lua เป็นตัวเลือกแรกสำหรับการค้นหาและแทนที่ มันทำงานอย่างนี้:

local text = "The quick brown fox jumps over the lazy dog."
local searchText = "lazy"
local replaceWith = "energetic"

local result = string.gsub(text, searchText, replaceWith)

print(result)

ผลลัพธ์:

The quick brown fox jumps over the energetic dog.

เพื่อแทนที่ทุกครั้งที่ปรากฏ, gsub ทำได้โดยค่าเริ่มต้น:

local text = "Apples are sweet. Apples are juicy."
local result = string.gsub(text, "Apples", "Oranges")

print(result)

ผลลัพธ์:

Oranges are sweet. Oranges are juicy.

การศึกษาเจาะลึก

การค้นหาและแทนที่ข้อความไม่ใช่เฉพาะแต่ใน Lua เท่านั้น; มันเป็นคุณสมบัติทั่วไปในภาษาการเขียนโปรแกรม Lua ฟังก์ชั่น string.gsub ย้อนกลับไปสู่รากฐานการจัดการสตริงของมัน นำเสนอวิธีการตรงไปตรงมาในการจัดการรูปแบบและการแทนที่

จากประวัติศาสตร์, gsub (การแทนที่ระดับโลก) ได้รับอิทธิพลจากคำสั่ง sed ใน Unix และความสามารถในการจับคู่รูปแบบของ Perl ที่มีประสิทธิภาพสูง รูปแบบของ Lua ถึงแม้จะง่ายกว่า regular expressions ที่พบในภาษาอื่น ก็ยังสามารถจัดการกับการจับคู่ที่ซับซ้อนได้ด้วยความคิดสร้างสรรค์

ทางเลือกอื่นๆ สำหรับ string.gsub ประกอบด้วยการวนซ้ำผ่านสตริงด้วยตนเองและสร้างการแทนที่—วิธีที่มีโอกาสผิดพลาดมากขึ้น สำหรับการประมวลผลข้อความหนัก สามารถใช้ไลบรารีการประมวลผลที่เฉพาะเจาะจงได้

ในด้านการใช้งาน, gsub สามารถใช้ฟังก์ชั่นเป็นข้อโต้แย้งการแทนที่ ทำให้สามารถควบคุมการแทนที่ด้วยโปรแกรมได้

local result = string.gsub(text, "(%a+)", function(word)
  return #word > 4 and word:upper() or word
end)

ส่วนย่อยนี้จะทำให้คำที่ยาวกว่าสี่อักษรเป็นตัวพิมพ์ใหญ่

อ่านเพิ่มเติม

  • หนังสือ Programming in Lua, ให้ความรู้ลึกเกี่ยวกับแนวคิดการเขียนโปรแกรม Lua
  • สำหรับความสามารถของรูปแบบสตริง Lua ที่สมบูรณ์, ตรวจสอบ Lua 5.4 Reference Manual