需要帮助来理解LPeg和PEG

以下模式(来自此页面)仅匹配具有平衡圆括号的字符串:

b = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }

1- in 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

patt / repl + 1中的+1是什么意思?

我仍然不能完全得到优先选择运营商的功能/非常好,从这个文件

任何帮助将不胜感激!


1 1 - lpeg.S"()"表示任何字符。 整个语句可以被读为,匹配任何字符,但不匹配集合"()"的字符。

+1是同样的想法,如果repl是一个字符串,那么patt / repl + 1匹配模式patt ,然后用字符串repl替换它的捕获或跳过一个字符。

链接地址: http://www.djcxy.com/p/75021.html

上一篇: Need help to understand LPeg and PEGs

下一篇: Is angular.js with ui