Lua Academy · Pelajaran

string.gmatch untuk Tokenisasi

Lakukan lelaran pada semua padanan dalam rentetan dengan string.gmatch.

Pelajaran 3 daripada 413 langkah

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)
end

Mengumpulkan 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)  -- 3

Mengekstrak 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))
end

Menggunakan 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)
end

Penoken CSV

Pisahkan baris CSV dengan menangkap semua kandungan antara koma.

local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
  print(field)
end

Menghurai 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*$")
end

Mengira 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"))  -- 2

Penoken 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*$"))
end

gmatch 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.

Percuma untuk bermula

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

  1. Sintaks Corak Lua
  2. Tangkapan dan string.match
  3. string.gmatch untuk Tokenisasi
  4. string.gsub untuk Transformasi
← Kembali ke Lua Academy