7

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

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

+1in是什么patt / repl + 1意思?

/而且我仍然不能很好地从这篇论文中得到优先选择算子的功能

任何帮助将不胜感激!

4

1 回答 1

5

1in1 - lpeg.S"()"表示任何字符。整个语句可以理解为,匹配任何字符,而不匹配集合中的字符"()"

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

于 2013-10-19T00:35:18.250 回答