string.gmatch untuk Tokenisasi
Lakukan lelaran pada semua padanan dalam rentetan dengan string.gmatch.
string.gmatch untuk Tokenisasi ialah pelajaran Lua Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Lua Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.
Apakah string.gmatch?
string.gmatch(s, pattern) mengembalikan lelar yang berturut-turut mengembalikan semua padanan pattern dalam rentetan s.
Melakukan Lelaran pada Perkataan
Tokenkan rentetan kepada perkataan dengan memadankan jujukan aksara bukan ruang.
local s = "the quick brown fox"
for word in s:gmatch("%S+") do
print(word)
endMengumpulkan Padanan ke dalam Jadual
Kumpulkan semua padanan ke dalam jadual untuk pemprosesan selanjutnya.
local function split(s, pat)
local parts = {}
for token in s:gmatch(pat) do
parts[#parts+1] = token
end
return parts
end
local words = split("one two three", "%S+")
print(#words) -- 3Mengekstrak Nombor
Ekstrak semua integer daripada rentetan dengan corak %d+.
local s = "x=10, y=20, z=30"
for n in s:gmatch("%d+") do
print(tonumber(n))
endMenggunakan Tangkapan dalam gmatch
Apabila corak mempunyai tangkapan, setiap lelaran mengembalikan kumpulan yang ditangkap dan bukannya keseluruhan padanan.
local s = "from=Alice, to=Bob, cc=Carol"
for k, v in s:gmatch("(%w+)=(%w+)") do
print(k, "->", v)
endPenoken CSV
Pisahkan baris CSV dengan menangkap semua kandungan antara koma.
local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
print(field)
endMenghurai Pasangan Kunci-Nilai
Hurai rentetan pengepala gaya HTTP ke dalam jadual pasangan kunci-nilai.
local headers = "Content-Type: text/html; Content-Length: 1234"
local parsed = {}
for k, v in headers:gmatch("([%w%-]+): ([^;]+)") do
parsed[k] = v:match("^%s*(.-)%s*$")
endMengira Kejadian Corak
Hitung berapa kali sesuatu corak muncul dalam rentetan.
local function count(s, pat)
local n = 0
for _ in s:gmatch(pat) do n = n + 1 end
return n
end
print(count("banana", "an")) -- 2Penoken Ayat
Pisahkan teks kepada ayat dengan memadankan teks sehingga tanda baca.
local text = "Hello. How are you? Fine!"
for sent in text:gmatch("[^.!?]+[.!?]?") do
print(sent:match("^%s*(.-)%s*$"))
endgmatch berbanding string.find dalam Gelung
gmatch ialah cara yang disyorkan untuk melakukan lelaran pada semua padanan. Menggunakan string.find dalam gelung while lebih panjang dan lebih terdedah kepada ralat.
Peringatan Unicode
Corak Lua beroperasi pada bait. Aksara UTF-8 berbilang bait mungkin tidak sepadan dengan betul dengan corak satu aksara. Untuk sokongan Unicode penuh, gunakan pustaka UTF-8.
Soalan gmatch
Apakah yang dilakukan oleh for w in s:gmatch("%S+") do?
Imbas Kembali: string.gmatch
string.gmatch ialah penoken standard Lua. Gunakannya untuk memisahkan rentetan, mengekstrak semua nombor, menghurai pasangan kunci-nilai, dan mengira kejadian corak dalam gelung lelar yang kemas.
Pelajari Lua dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 40
- Pelajaran
- 159
Soalan Lazim
Adakah pelajaran “string.gmatch untuk Tokenisasi” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Lua Academy, termasuk “string.gmatch untuk Tokenisasi”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “string.gmatch untuk Tokenisasi”?
Lakukan lelaran pada semua padanan dalam rentetan dengan string.gmatch. Anda berlatih Lua Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Lua Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Lua Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “string.gmatch untuk Tokenisasi” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Lua Academy ini?
Ya. Setiap pelajaran Lua Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Sintaks Corak Lua
- Tangkapan dan string.match
- string.gmatch untuk Tokenisasi
- string.gsub untuk Transformasi