ไวยากรณ์รูปแบบ Lua
เรียนรู้กลุ่มอักขระ %d, %a, %s จุดยึด และตัวระบุจำนวนในรูปแบบ Lua
ไวยากรณ์รูปแบบ Lua เป็นบทเรียน Lua Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Lua Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
รูปแบบ Lua เทียบกับนิพจน์ปกติ
Lua ใช้ภาษารูปแบบของตนเอง ไม่ใช่นิพจน์ปกติแบบ POSIX เต็มรูปแบบ ภาษานี้เรียบง่ายและรวดเร็วกว่า แต่ไม่มีการสลับทางเลือก (|) และการมองไปข้างหน้า
คลาสอักขระ
%d ตัวเลข, %a ตัวอักษร, %l ตัวพิมพ์เล็ก, %u ตัวพิมพ์ใหญ่, %s ช่องว่าง, %p เครื่องหมายวรรคตอน, %w ตัวอักษรและตัวเลข อักษรพิมพ์ใหญ่จะเปลี่ยนเป็นความหมายปฏิเสธ: %D = ไม่ใช่ตัวเลข
ตัวระบุจำนวน
* ศูนย์ครั้งขึ้นไป (แบบตะกละ), + หนึ่งครั้งขึ้นไป, ? ศูนย์หรือหนึ่งครั้ง, - ศูนย์ครั้งขึ้นไป (แบบละโมบต่ำสุดหรือจับคู่สั้นที่สุด)
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)จุดยึด
^ ยึดกับจุดเริ่มต้นของสตริง ส่วน $ ยึดกับจุดสิ้นสุด
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilชุดอักขระด้วย []
คลาสอักขระแบบกำหนดเอง: [aeiou] ตรงกับสระใดก็ได้, [^aeiou] ตรงกับอักขระที่ไม่ใช่สระ, [a-z] ตรงกับตัวอักษรพิมพ์เล็ก
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123การใช้อักขระหลีกกับอักขระพิเศษ
อักขระพิเศษ ( ) . % + - * ? [ ^ $ ต้องใช้อักขระหลีกด้วย %
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot)อักขระแทนที่ .
. ตรงกับอักขระเดี่ยวใดก็ได้ ใช้ร่วมกับตัวระบุจำนวนได้: .- คือการจับคู่ทั้งหมดแบบละโมบต่ำสุด
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)รูปแบบขอบเขต %f
%f[set] ตรงกับตำแหน่งว่างระหว่างอักขระที่ไม่อยู่ใน set กับอักขระที่อยู่ใน set ซึ่งมีประโยชน์สำหรับระบุขอบเขตคำ
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find เทียบกับ string.match
string.find ส่งคืนดัชนีเริ่มต้นและสิ้นสุด (รวมค่าที่จับได้) ส่วน string.match ส่งคืนข้อความที่ตรงกัน (หรือค่าที่จับได้) โดยตรง
local s = "date: 2025-01-15"
local i, j = s:find("%d%d%d%d%-%d%d%-%d%d")
print(i, j) -- 7 16
print(s:match("(%d+)-(%d+)-(%d+)")) -- 2025 01 15การจับคู่สมดุล %b
%bxy ตรงกับคู่อักขระ x และ y ที่สมดุลกัน ตัวอย่างเช่น %b() ตรงกับวงเล็บที่สมดุลกัน รวมถึงวงเล็บซ้อนกัน
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)ข้อจำกัดของรูปแบบ
รูปแบบของ Lua ไม่รองรับ: การสลับทางเลือก (a|b), การอ้างอิงย้อนกลับ, การมองไปข้างหน้าหรือข้างหลัง หรือกลุ่มที่มีชื่อ สำหรับกรณีเหล่านี้ ให้ใช้ LPEG หรือไลบรารีนิพจน์ทั่วไปภายนอก
คำถามเกี่ยวกับไวยากรณ์รูปแบบ
รูปแบบใดตรงกับตัวเลขหนึ่งหลักขึ้นไป
สรุป: ไวยากรณ์รูปแบบของ Lua
รูปแบบของ Lua ใช้คลาส %d %a %s, ตัวระบุจำนวน * + ? -, จุดยึด ^ $, ชุดอักขระ [] และ %b สำหรับการจับคู่แบบสมดุล รูปแบบเหล่านี้มีประสิทธิภาพ แต่ไม่มีการสลับทางเลือกแบบนิพจน์ทั่วไป
คำถามที่พบบ่อย
บทเรียน “ไวยากรณ์รูปแบบ Lua” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ไวยากรณ์รูปแบบ Lua” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Lua Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ไวยากรณ์รูปแบบ Lua”
เรียนรู้กลุ่มอักขระ %d, %a, %s จุดยึด และตัวระบุจำนวนในรูปแบบ Lua คุณปฏิบัติ Lua Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Lua Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Lua Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ไวยากรณ์รูปแบบ Lua” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Lua Academy นี้ได้ไหม
ได้ บทเรียน Lua Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ไวยากรณ์รูปแบบ Lua
- การจับกลุ่มและ string.match
- string.gmatch สำหรับการแยกโทเคน
- string.gsub สำหรับการแปลง