如何在Lua中搜索文件内容

我正在尝试打开一个文件并搜索特定的字符串,然后将我的内容与该特定字符串关联以供将来使用并重新保存文件。

到目前为止,我已经成功地打开一个文件并向该文件写入内容。但我正在寻找搜索文件内容并查找特定字符串并将我的数据与该字符串相关联的逻辑。这更像是一个用于将来参考的查找表。到目前为止,我的代码如下所示:

-向文件写入内容
function wrt2filearg1)
文件= io.open(“/test.txt”,“a +”)
文件:writearg1)
文件:close()
end

--搜索字符串并将新字符串与之关联
function searcharg1arg2arg3)
-我正在寻找一个将在文件(arg2)中搜索字符串(arg1)并将arg3粘贴到该位置以便可以将其用作查找表的函数。

结束
wrt2file(“你好”)
本地内容= “你好”
搜索(内容,“hi.txt”,“世界”)

如何实现这一点?

点赞
用户1183484
用户1183484

你应该看一下 Lua 中的 模式匹配函数

我不清楚你是想替换文件中的字符串,还是仅仅想记住文件中字符串的位置。

如果要替换,你可以使用 gsub 函数,它的使用方法如下:

-- 搜索的字符串:
str = 'an example string with the word hello in it'

-- 查找单词 'hello' 并将其替换为 'hello world',
-- 并返回一个新的字符串
new_str = str:gsub('hello', 'hello world')

-- new_str 是 'an example string with the word hello world in it'

如果你只想记住在文件中找到字符串的位置,那么你应该使用 find 函数,它的使用方法如下:

-- 搜索的字符串:
str = 'an example string with the word hello in it'

-- 在 str 中搜索单词 'hello' 的位置
offset = str:find('hello')

-- offset 现在包含数字 33,它是单词 'hello' 在 str 中的位置
-- 将这个位置保存在某个地方:
wrt2file(('world %d'):format(offset))
-- 你的 '/test.txt' 文件中现在包含 'world 33'
2015-10-15 12:06:27