使用 lua 从文本文件中获取文件名
get filename back from textfile with lua
我正在 lua 中将文件名保存为文本文件,之后想在 tex 文件中搜索文件名。我的问题是我只得到搜索到的字符串,而不是整个文件名。
这是我的代码:
local file,err = io.open("C:\Users\lamu7789\Documents\Lua_Plugins\test_file_reader \channels.txt", 'w')
if file then
for dir in io.popen([[dir "C:\Users\lamu7789\Documents\Lua_Plugins\test_file_reader\textfiles" /b]]):lines() do
file:write(dir.."\n")
end
file:close()
else
print("error: ", err)
end
channel = "0x"..string.upper("10")
local file = io.open("C:\Users\lamu7789\Documents\Lua_Plugins\test_file_reader\channels.txt", "rb")
if not file then return nil end
local String = file:read "*a"
local name = String:match(channel)
print(name)
file:close()
对于这个例子,我得到了“0x10”。
这是路径的样子以及打印出的“print(String)”:
我要找回的是这样的:“0x10_adress_second.txt”。
这里有什么问题?
感谢您的帮助。
您需要像这样匹配全名:
channel = "0x10[_%w]+.txt"
string.match returns 捕获。在你的情况下是 "0x10"
.
如果要捕获整行,则需要修改模式。
local s = "0x7E_address_first.txt\n0x10_address_second.txt\n"
print(s:match("0x7E[^\n]*"))
print(s:match("0x10[^\n]*"))
这将捕获您的起始字符,后跟除换行符以外的任何字符。
请参考https://www.lua.org/manual/5.4/manual.html#pdf-string.match
我正在 lua 中将文件名保存为文本文件,之后想在 tex 文件中搜索文件名。我的问题是我只得到搜索到的字符串,而不是整个文件名。
这是我的代码:
local file,err = io.open("C:\Users\lamu7789\Documents\Lua_Plugins\test_file_reader \channels.txt", 'w')
if file then
for dir in io.popen([[dir "C:\Users\lamu7789\Documents\Lua_Plugins\test_file_reader\textfiles" /b]]):lines() do
file:write(dir.."\n")
end
file:close()
else
print("error: ", err)
end
channel = "0x"..string.upper("10")
local file = io.open("C:\Users\lamu7789\Documents\Lua_Plugins\test_file_reader\channels.txt", "rb")
if not file then return nil end
local String = file:read "*a"
local name = String:match(channel)
print(name)
file:close()
对于这个例子,我得到了“0x10”。 这是路径的样子以及打印出的“print(String)”:
我要找回的是这样的:“0x10_adress_second.txt”。 这里有什么问题? 感谢您的帮助。
您需要像这样匹配全名:
channel = "0x10[_%w]+.txt"
string.match returns 捕获。在你的情况下是 "0x10"
.
如果要捕获整行,则需要修改模式。
local s = "0x7E_address_first.txt\n0x10_address_second.txt\n"
print(s:match("0x7E[^\n]*"))
print(s:match("0x10[^\n]*"))
这将捕获您的起始字符,后跟除换行符以外的任何字符。
请参考https://www.lua.org/manual/5.4/manual.html#pdf-string.match