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