Lua:
การลบตัวอักษรที่ตรงกับรูปแบบ
วิธีการ:
ใน Lua, เราสามารถใช้ฟังก์ชัน gsub
เพื่อแทนที่ครั้งที่ปรากฏของรูปแบบด้วยสตริงอื่น - สตริงว่างเมื่อเราต้องการลบออก:
local text = "Hello, 123 World! 456"
local pattern = "%d" -- รูปแบบที่ตรงกับตัวเลขทั้งหมด
local cleanedText, numOfReplacements = text:gsub(pattern, "")
print(cleanedText) -- ผลลัพธ์: "Hello, World!"
print("จำนวนการแทนที่ที่ทำ:", numOfReplacements) -- ผลลัพธ์: "จำนวนการแทนที่ที่ทำ: 6"
สังเกตว่า gsub
ยังคืนค่าจำนวนการแทนที่ที่ทำได้ด้วย, ซึ่งอาจเป็นข้อมูลที่มีประโยชน์
ลงลึก
รูปแบบ Lua นั้นง่ายกว่านิพจน์ปกติที่พบในภาษาอื่น ๆ แต่ยังคงมีความสามารถ จากมุมมองประวัติศาสตร์, การตัดสินใจของ Lua ที่จะใช้กลไกการจับคู่รูปแบบที่เบากว่ามีรากฐานมาจากการรักษาภาษาให้เบาและเร็ว
ทางเลือก ได้แก่ การใช้ลูปกับ string.find
และ string.sub
เพื่อตรวจสอบและจัดการสตริงด้วยตนเอง แต่โดยทั่วไปแล้วจะมีประสิทธิภาพน้อยกว่าการจับคู่รูปแบบกับ gsub
ในแง่ของการดำเนินการ, เมื่อ gsub
ถูกเรียกด้วยรูปแบบ, Lua จะเรียกคอมไพล์รูปแบบนี้เป็นไบต์โค้ดซึ่งจากนั้นจะถูกปฏิบัติการโดยตัวจับคู่รูปแบบ ควรทราบว่ามีความแตกต่างระหว่างรูปแบบ Lua กับนิพจน์ปกติจริงๆ, โดยรูปแบบแรกมีชุดคุณสมบัติที่น้อยกว่าซึ่งไม่รวมถึงโครงสร้างเช่นการมองไปข้างหน้าหรือการอ้างอิงย้อนกลับ
ดูเพิ่มเติม
- คู่มืออ้างอิง Lua 5.4 สำหรับ
string.gsub
: https://www.lua.org/manual/5.4/manual.html#pdf-string.gsub - การเขียนโปรแกรมใน Lua (ฉบับแรก) ที่มีออนไลน์เพื่อการเข้าใจรูปแบบ: https://www.lua.org/pil/20.2.html
- โปรแกรมทดสอบรูปแบบ Lua ออนไลน์ เพื่อทดลองกับการจับคู่รูปแบบของ Lua: https://www.lua.org/cgi-bin/demo
จำไว้ว่า, เครื่องมือเหล่านี้จะช่วยให้คุณเข้าใจการจับคู่รูปแบบของ Lua ได้อย่างมั่นใจยิ่งขึ้นและให้คุณแซนด์บ็อกซ์เพื่อทดสอบการจัดการสตริงของคุณ สนุกกับการเขียนโค้ดนะ!