我不能让变量 "v" 接收任何字符,而变量 "k" 只接收字母数字

I can not make the variable "v" receive any characters while the variable "k" receives only alphanumeric

有人可以帮我解决这个问题吗?

我无法让变量 "v" 接收任何字符,而变量 "k" 只接收字母数字。

t = {}     
for k, v in string.gmatch(decrypt, "(%w+)=([^']*)") do
  t[k] = v
print(k,v)
end 

我有一个包含以下内容的文件:

email=mbw@iue.com
ip=192.168.100.1
mac=af:45:t6:45:67

你实际上只得到一个匹配,因为 * 是贪婪的。如果您尝试拆分行,请尝试 (%w+)=([^'\n]*)\n

注意:Lua 使用模式,而不是正则表达式。有时差异并不重要,有时却至关重要。

(可能过于简单化了,如果是这样,抱歉...)
如果您试图在文件中的“=”处换行,则将它们分配为 t:

中的键值对
--
-- PART I - read from a file
--
local file = "pattern.dat"                     -- our data file
local t = {}                                   -- hold file values
for l in io.lines(file) do                     -- get one line at a time
    local k, v = string.match(l, "(.+)=(.+)")  -- key, value delimited by '=''
    t[k] = v                                   -- save in table
    print(k,t[k])
end

print("\n\n")

--
-- PART II - read from data string
--
local data = "email=mbw@iue.com/ip=192.168.100.1/mac=af:45:t6:45:67"
data = data .. "/"                              -- need a trailing '/'
t = {}                                          -- hold data values
for l in string.gmatch(data, "(.-)/") do        -- get one 'line' at a time
    local k,v = string.match(l, "(.+)=(.+)")    -- key, value delimited by '=''
    t[k] = v
    print(k,t[k])
end

关于“^”锚点的注意事项(来自 'gmatch' 的参考手册条目):

For this function, a caret '^' at the start of a pattern does not work as an anchor, as this would prevent the iteration. http://www.lua.org/manual/5.3/manual.html#pdf-string.gmatch