I am trying to parse a string such as: &1 first &2 second &4 fourth \\
, and from it to build a table
t = {1=first, 2=second, 4=fourth}
I'm not very experienced with regex in general so my naive try (disregarding the \\
and table parts for the moment) was
local s = [[&1 first &2 second &4 fourth \\]]
for k,v in string.gmatch(s, "&(%d+)(.-)&") do
print("k = "..k..", v = "..v)
end
which gives only the first captured pair when I was expecting to see two captured pairs. I've done some reading and found the lpeg
library, but it's massively unfamiliar to me. Is lpeg
needed here? Could anyone explain my error?
&(%d+)(.-)&
matches &1 first &
2 second &4 fourth \\
to be matched on