在下面的lua代码中:
function interp(s, tab)
return (s:gsub('($%b{})', function(w) return tab[w:sub(3, -2)] or w end))
end
Run Code Online (Sandbox Code Playgroud)
%b 是什么意思?
这如何匹配 "${name}" 之类的东西?
%bXY匹配以 开头X和结尾的字符序列Y。因此,%b{}匹配{......}大括号之间的任何字符。
示例代码中的整体模式首先匹配一个$字符,后跟 a {、任意数量的字符,然后是 a }。