首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助理解LPeg和PEG

需要帮助理解LPeg和PEG
EN

Stack Overflow用户
提问于 2013-10-18 21:44:59
回答 1查看 592关注 0票数 7

以下模式(来自this page)只匹配带有平衡括号的字符串:

代码语言:javascript
复制
b = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }

1-1 - lpeg.S"()"中是什么意思?

代码语言:javascript
复制
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的功能。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-19 00:35:18

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19459504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档