การลบตัวอักษรที่ตรงกับรูปแบบ

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 ได้อย่างมั่นใจยิ่งขึ้นและให้คุณแซนด์บ็อกซ์เพื่อทดสอบการจัดการสตริงของคุณ สนุกกับการเขียนโค้ดนะ!