Menu
CoddyTech

string.gsub() để thay thế

Thuộc phần Logic và luồng chương trình trong hành trình Lua của Coddy. Bài học 35 trên 54.

Khi làm việc với chuỗi, bạn thường cần tìm và thay thế văn bản. Hàm string.gsub() của Lua giúp bạn thực hiện việc này dễ dàng bằng cách thay thế toàn cục: tìm mọi lần xuất hiện của một mẫu và thay chúng bằng nội dung khác.

Cú pháp cơ bản nhận ba đối số (argument): chuỗi (string) ban đầu, mẫu cần tìm và văn bản thay thế:

local result = string.gsub(originalString, pattern, replacement)

Đây là một ví dụ đơn giản thay thế mọi dấu cách bằng dấu gạch dưới:

local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned)  -- Đầu ra: hello_world_from_lua

Hàm trả về hai giá trị: chuỗi đã chỉnh sửa và số lần thay thế. Bạn có thể nhận cả hai giá trị nếu cần:

local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result)  -- Đầu ra: baz bar baz
print(count)   -- Đầu ra: 2

Khác với một số hàm chuỗi (string function) chỉ tìm kết quả khớp đầu tiên, string.gsub() mặc định thay thế mọi lần xuất hiện, nên rất phù hợp với các tác vụ làm sạch văn bản như xóa ký tự không mong muốn hoặc chuẩn hóa định dạng.

challenge icon

Thử thách

Dễ

Viết một hàm (function) cleanText nhận text và trả về phiên bản đã làm sạch, trong đó mọi dấu cách được thay bằng dấu gạch dưới.

Dùng string.gsub() để thay mọi ký tự dấu cách trong văn bản bằng ký tự dấu gạch dưới.

Tham số:

  • text (chuỗi): Văn bản cần làm sạch

Giá trị trả về: Văn bản có mọi dấu cách được thay bằng dấu gạch dưới (chuỗi)

Tự làm thử

function cleanText(text)
    -- Viết code ở đây
end
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Lua online