我有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文件的第一行有什么建议吗?
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不允许/接受单引号,则可以尝试[[]]或""
'\n'
''
[[]]
""
vulvrdjw2#
file:read()只读取一行。要将整个文件读入字符串,必须使用file:read("*a")。但是请注意,您似乎还交换了string.find的参数:第一个参数是要搜索的主题字符串,第二个参数是pattern,因为要在文件中搜索,所以应该使用string.find(data, string1)。
file:read()
file:read("*a")
string.find
string.find(data, string1)
2条答案
按热度按时间vfhzx4xs1#
您应该指定string. gsub([pattern],[string|桌|函数],[计数])一次尝试。
例如,要删除所有换行符以返回单行,请选择...
切记:string. gsub()在整个字符串上循环,因此count返回值将显示模式
'\n'
匹配并替换为空字符串''
〈--2个单引号的频率,或者如果nginx不允许/接受单引号,则可以尝试[[]]
或""
vulvrdjw2#
file:read()
只读取一行。要将整个文件读入字符串,必须使用file:read("*a")
。但是请注意,您似乎还交换了
string.find
的参数:第一个参数是要搜索的主题字符串,第二个参数是pattern,因为要在文件中搜索,所以应该使用string.find(data, string1)
。