Lua模式在行结束时停止

时间:2014-10-02 14:41:26

标签: string lua lua-patterns

我需要帮助Lua中的模式停止在换行后读取。 我的代码:

function getusers(file)
local list, close = {}
    local user, value = string.match(file,"(UserName=)(.*)")
    print(value)
    f:close()
end

f = assert(io.open('file2.ini', "r"))
local t = f:read("*all")
getusers(t)


--file2.ini--

user=a
UserName=Tom
Password=xyz
UserName=Jane

使用file2.ini输出脚本:

  

汤姆

     

密码= XYZ

     

用户名=简

如何让模式在到达行尾后停止?

1 个答案:

答案 0 :(得分:4)

您可以使用模式

"(UserName=)(.-)\n"

请注意,除了额外的\n之外,还会使用延迟修饰符-代替*


正如@lhf指出的那样,确保文件以新行结束。我认为您可以在匹配之前手动将\n附加到字符串。