- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下模式(来自 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
最佳答案
1
在 1 - lpeg.S"()"
表示任何字符。整个语句可以读作,匹配任何字符而不匹配集合中的字符"()"
.+1
是同样的想法,如果 repl
是一个字符串然后 patt / repl + 1
匹配模式 patt
然后用字符串 repl
替换它的捕获或跳过一个字符。
关于lua - 需要帮助来理解 LPeg 和 PEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459504/
正如标题所说,我正在尝试解析例如 term(A, b, c(d, "e", 7)) 在 Lua 表中 {term, {A, b, {c, {d, "e", 7}}}} 这是我构建的语法: local
我的 Lua 应用程序的一部分是一个搜索栏,我试图让它理解 bool 表达式。我正在使用 LPeg,但当前语法给出了一个奇怪的结果: > re, yajl = require're', require
我正在尝试编写一个 LPeg 模式来匹配以下字符串: 以字母开头 此后包含字母数字字符 不包含两个或多个连续的连字符(例如不允许 test--string) 作为引用,正则表达式 [a-zA-Z](-
要匹配以 dog 开头,后跟 cat(但不使用 cat)的字符串,这是可行的: local lpeg = require 'lpeg' local str1 = 'dogcat' local patt
我正在为 Lua 制作一个序列化库,我正在使用 LPeg 来解析字符串。我已经使用了 K/V 对(使用明确命名的键),但现在我要添加自动索引。 它会像这样工作: @"value" @"value2"
在普通的 PEG(解析表达式语法)中,这是一个有效的语法: values bad argument #2 to '?' (lpeg-pattern expected, got nil) 虽然在这个简
我一直在研究a text editor使用 LPEG 来实现语法高亮支持。启动并运行非常简单,但我只完成了最低限度的要求。 我定义了一堆这样的模式: -- Keywords local keywo
我有一些带有多行块的文本文件,例如 2011/01/01 13:13:13,, Some Certain Text,=, [ certain text [
以下模式(来自 this page )仅匹配带有平衡括号的字符串: b = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" } 什么1-在 1
我目前正在熟悉 LPeg 解析器模块。为此,我想将版本字符串(例如 11.4)与 list 进行匹配。 这样的列表是一个具有严格语法的字符串,也可以包含范围。这是一个类似 EBNF,但无论如何都非常简
我正在尝试创建一个 LPeg 模式,该模式将匹配 UTF-8 编码输入中的任何 Unicode 标点符号。我想出了以下 Selene Unicode 和 LPeg 的结合: local unicode
我有一个应用程序(除其他外)支持纯文本搜索和使用 Lua 模式的搜索。为方便起见,该应用程序支持不区分大小写的搜索。这是一个图像片段: 将给定的 Lua 模式转换为不区分大小写的 Lua 模式的代码不
我有一个应用程序(除其他外)支持纯文本搜索和使用 Lua 模式的搜索。为方便起见,该应用程序支持不区分大小写的搜索。这是一个图像片段: 将给定的 Lua 模式转换为不区分大小写的 Lua 模式的代码不
我正在努力了解 LPEG。我已经设法生成了一种语法,它可以满足我的要求,但我一直在努力反对这个语法,但并没有走得太远。这个想法是解析一个文档,它是 TeX 的简化形式。我想将文档拆分为: 环境,它们是
ATM 我正在尝试从我的应用程序执行 lua 文件,这适用于基本的 lua。我正在使用 borland 编译器(builder 3,只是不要问 >.<) 现在我正尝试通过 re 模块使用 lpeg
我已经使用 apt-get update 和 apt-get upgrade 更新了我的 Kali Linux 2.0。 从那时起,nmap 就不再为我工作了。 我在命令行收到以下错误: root@k
所以我在玩 lpeg 来代替 boost 精神语法,我必须说 boost::spirit 比 lpeg 更优雅和自然。然而,由于当前 C++ 编译器技术的限制和 C++ 中的 TMP 问题,它很难使用
我是一名优秀的程序员,十分优秀!