問題の説明:
やあ。lua 関数 "string.gsub" の使用方法を理解しようとしています。私は次のようなマニュアルを読んでいます:
これは非常に強力な機能であり、さまざまな方法で使用できます。単純に使用すると、置換で提供されるパターンのすべてのインスタンスを置き換えることができます。値のペア、変更された文字列と行われた置換の数が返されます。オプションの 4 番目の引数 n を使用して、行われる置換の数を制限できます。
> = string.gsub("Hello banana", "banana", "Lua user")
Hello Lua user 1
> = string.gsub("banana", "a", "A", 2) -- limit substitutions made to 2
bAnAna 2
質問
値のペアが返されると言うとき。新しい文字列値を取得するにはどうすればよいですか?
コード
local email_filename = "/var/log/test.txt"
local email_contents_file_exists = function(filename)
file = io.open(filename, "r")
if file == nil then
return false
else
file.close(file)
return true
end
end
local read_email_contents_file = function()
print('inside the function')
if not email_contents_file_exists(email_filename) then
return false
end
local f = io.open(email_filename, "rb")
local content = f:read("*all")
f:close()
print(content)
--content = string.gsub(content, '[username]', 'myusername')
--local tmp {}
--tmp = string.gsub(content, '[username]', 'myusername')
print(string.gsub(content, '[username]', 'myusername'))
return content
end
local test = read_email_contents_file()
私がこれまでに試したこと:
上記のように、結果を印刷してみました。それは文字化けしたテキストの束を返します。元の文字列に保存しようとしましたが、結果を配列に保存しようとしました ( local tmp = {}
)
助言がありますか?