gpt4 book ai didi

lua - 需要帮助来理解 LPeg 和 PEG

转载 作者:行者123 更新时间:2023-12-04 12:21:49 25 4
gpt4 key购买 nike

以下模式(来自 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 有什么用在 patt / repl + 1意思?

而且我还是不太明白优先选择运算符的功能 /从这个很好 paper

任何帮助将不胜感激!

最佳答案

11 - lpeg.S"()"表示任何字符。整个语句可以读作,匹配任何字符而不匹配集合中的字符"()" .
+1是同样的想法,如果 repl是一个字符串然后 patt / repl + 1匹配模式 patt然后用字符串 repl 替换它的捕获或跳过一个字符。

关于lua - 需要帮助来理解 LPeg 和 PEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com