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() はデフォルトですべての出現箇所を置換するため、不要な文字の削除やフォーマットの標準化といったテキストクリーニングのタスクに最適です。
チャレンジ
簡単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) -- 出力: 2string.gsub() は、最初のマッチだけでなく、デフォルトですべての出現箇所を置換します。
自分で試してみよう
function cleanText(text)
-- ここにコードを記述してください
end
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。