Menu
Coddy logo textTech

string.gsub() による置換

CoddyのLuaジャーニー「Logic & Flow」セクションの一部 — レッスン 35/54。

文字列を扱う際、テキストを検索して置換する必要がよくあります。Luaの string.gsub() 関数は、パターンのすべての出現箇所を見つけて別のものに置き換える「グローバル置換」を実行することで、これを容易にします。

基本的な構文は、元の文字列、検索するパターン、および置換テキストの3つの引数を取ります:

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

すべてのスペースをアンダースコアに置き換える簡単な例を次に示します:

local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned)  -- 出力: hello_world_from_lua

この関数は、変更された文字列と行われた置換の回数の2つの値を返します。必要に応じて、両方を受け取ることができます。

local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result)  -- 出力: baz bar baz
print(count)   -- 出力: 2

最初の不一致のみを検索する一部の文字列関数とは異なり、string.gsub() はデフォルトですべての出現箇所を置換するため、不要な文字の削除やフォーマットの標準化といったテキストクリーニングのタスクに最適です。

challenge icon

チャレンジ

簡単

text を受け取り、すべてのスペースをアンダースコアに置き換えたクリーンなバージョンを返す関数 cleanText を作成してください。

string.gsub() を使用して、テキスト内のすべてのスペース文字をアンダースコア文字に置き換えます。

パラメータ:

  • text (string): クリーンにするテキスト

戻り値: すべてのスペースがアンダースコアに置き換えられたテキスト (string)

チートシート

string.gsub() 関数は、パターンのすべての出現箇所を検索して置換することで、グローバル置換を実行します。

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

スペースをアンダースコアに置換する例:

local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned)  -- 出力: hello_world_from_lua

この関数は、変更された文字列と行われた置換の回数の2つの値を返します。

local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result)  -- 出力: baz bar baz
print(count)   -- 出力: 2

string.gsub() は、最初のマッチだけでなく、デフォルトですべての出現箇所を置換します。

自分で試してみよう

function cleanText(text)
    -- ここにコードを記述してください
end
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Logic & Flowのすべてのレッスン