以下模式(来自this page)只匹配带有平衡括号的字符串:
b = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }1-在1 - lpeg.S"()"中是什么意思?
function gsub (s, patt, repl)
patt = lpeg.P(patt)
patt = lpeg.Cs((patt / repl + 1)^0)
return lpeg.match(patt, s)
end+1 in patt / repl + 1是什么意思?
我仍然不能很好地从这个/中得到优先选择操作符paper的功能。
任何帮助都将不胜感激!
发布于 2013-10-19 00:35:18
1 in 1 - lpeg.S"()"表示任何字符。整个语句可以读取为,匹配任何字符,而不匹配集合"()"中的字符。
+1也是这样,如果repl是一个字符串,那么patt / repl + 1就匹配模式patt,然后用字符串repl替换它的捕获,或者跳过一个字符。
https://stackoverflow.com/questions/19459504
复制相似问题