Lua NGINX字符串查找多行

vawmfj5a  于 2023-03-07  发布在  Nginx
关注(0)|答案(2)|浏览(196)

我有lua程序,我正在读取一些文件
但它们是. csv格式的,我需要找到一些字符串。
当它有多行不工作,只有第一行是可用的。
使用:

local open_file = io.open(file, "r")
   local data = open_file:read()
   io.close(open_file)

并显示:

local  match0 = string.find(string1, data)

所以它只读取. csv文件的第一行
有什么建议吗?

vfhzx4xs

vfhzx4xs1#

您应该指定string. gsub([pattern],[string|桌|函数],[计数])一次尝试。
例如,要删除所有换行符以返回单行,请选择...

local open_file = io.open(file) -- read is the default
local data, count = open_file:read('*a'):gsub('\n', '') -- every (returned) string has string library functions attached as method (metatable > metamethod > __index = string)
print(('%d newline/s removed\n%s'):format(count, data))

切记:string. gsub()在整个字符串上循环,因此count返回值将显示模式'\n'匹配并替换为空字符串''〈--2个单引号的频率,或者如果nginx不允许/接受单引号,则可以尝试[[]]""

vulvrdjw

vulvrdjw2#

file:read()只读取一行。要将整个文件读入字符串,必须使用file:read("*a")
但是请注意,您似乎还交换了string.find的参数:第一个参数是要搜索的主题字符串,第二个参数是pattern,因为要在文件中搜索,所以应该使用string.find(data, string1)

相关问题