我正在尝试解析类似于:&1 第一 &2 第二 &4 第四 \\
的字符串,并从中构建一个表格。
t = {1=first, 2=second, 4=fourth}
我对正则表达式并不是很熟悉,所以我的尝试有些幼稚(暂时忽略\\
和表格部分):
local s = [[&1 first &2 second &4 fourth \\]]
for k,v in string.gmatch(s, "&(%d+)(.-)&") do
print("k = "..k..", v = "..v)
end
当我期望看到两个捕获的组时,它只给出了第一个捕获的组。我已经阅读了一些资料并找到了 lpeg
库,但是对我来说这太不熟悉了。这里需要使用 lpeg
吗?有人能解释一下我的错误吗?
s:gmatch'&(%d+)([^&]*)'
。 - Egor Skriptunoff([^&]*)
匹配的是不包含&
的最长字符序列,对吗? - Scott H.