Lua 需要帮助了解LPeg和PEGs吗
以下模式(从)仅匹配带平衡圆括号的字符串:Lua 需要帮助了解LPeg和PEGs吗,lua,peg,lpeg,Lua,Peg,Lpeg,以下模式(从)仅匹配带平衡圆括号的字符串: b = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" } 1-lpeg.S“()”中的1-是什么意思 function gsub (s, patt, repl) patt = lpeg.P(patt) patt = lpeg.Cs((patt / repl + 1)^0) return lpeg.match(patt, s) end patt/repl+1中的+1是什么意思 f
b = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }
1-lpeg.S“()”
中的1-
是什么意思
function gsub (s, patt, repl)
patt = lpeg.P(patt)
patt = lpeg.Cs((patt / repl + 1)^0)
return lpeg.match(patt, s)
end
patt/repl+1
中的+1
是什么意思
function gsub (s, patt, repl)
patt = lpeg.P(patt)
patt = lpeg.Cs((patt / repl + 1)^0)
return lpeg.match(patt, s)
end
而且我仍然不能很好地从中获得优先选择操作符/
的功能
任何帮助都将不胜感激 在
1-lpeg.S“()”
中的1
表示任何字符。整个语句可以理解为,匹配任何字符,而不匹配集合“()”
中的字符
+1
的思想是相同的,如果repl
是一个字符串,那么patt/repl+1
匹配模式patt
,然后用字符串repl
替换它的捕获,或者跳过一个字符。通常,每当LPEG接受一个模式作为参数时,它也可以接受一个普通数字(或字符串、布尔值等),并将使用lpeg.P()将其隐式转换为模式,lpeg.P(1)表示“任何字符”。