In the following lua code:
function interp(s, tab)
return (s:gsub('($%b{})', function(w) return tab[w:sub(3, -2)] or w end))
end
what does the %b mean?
and how does this match stuff like "${name}" ?
In the following lua code:
function interp(s, tab)
return (s:gsub('($%b{})', function(w) return tab[w:sub(3, -2)] or w end))
end
what does the %b mean?
and how does this match stuff like "${name}" ?
%bXY matches a sequence of characters that starts with X and ends with Y. Thus, %b{} matches {......} for any characters in between the braces.
The overall pattern in your example code first matches a $ character followed by a {, any number of characters, and then a }.