问题标签 [lua-patterns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
221 浏览

string - 将字符串拆分为表格

目前,我正在使用这个功能:

现在,字符串中可以包含任何字符(从上面的函数中可以清楚地看出)。我想将字符串分解为仅检测空格而不检测其他字符的单词。我已经看到了这里提到的解决方案,但即使在 codepad.org(链接)上也对我没有帮助。我在 PtokaX 工作,如果你想知道的话。我试过使用

也是,但这也不起作用。:(

还有其他更简单的方法来创建表吗?

0 投票
1 回答
8206 浏览

lua - Lua string.gsub() by '%s' 或 '\n' 模式

英语不是我的母语,所以很难描述这个问题。
我想通过 lua string.gsub() 在 str 中得到 'd=40',但是有一些问题。

------下面的代码---
local str = [==[
-- a=10
- -b=20
--c=30
d=40
]==]

local pat1 = [=[%s[%s]]=]
local pat2 = [=[\n[%s]]=]
str:gsub(pat1, function(s) print("pat1>>" .. s ) end) --pat1>>d=40
str:gsub(pat2, function(s) print("pat2<<" .. s) end) --不匹配

本地 re1,_ = str:gsub("\n","$")
本地 re2,_ = str:gsub("%s","$")
print(re1) --a=10$- -b= 20$ --c=30$d=40$
print(re2) --$a=10$-$-b=20$$ --c=30$d=40$

正如 Lua 5.1 参考手册说
的 %s: 代表所有空格字符。
我认为它等于'\n',''和'\t'。

问题:为什么 pat2 不能匹配?
但我认为 pat2 是对的,有一个 '\n'befor'd=40' ,
所以我认为它可以匹配,但它不能工作,为什么?

0 投票
3 回答
3899 浏览

lua - Lua 模式中的交替运算符是什么?

在正则表达式中,|用于交替。Lua 模式中对应的字符是什么?

0 投票
1 回答
4337 浏览

lua - 在 Lua 中将 '%' 放入 string.gsub()

我有这个代码

我只是希望输出是这样的,my%20dog但我收到了这个错误

我读过那%是Lua中的逃生。

我的问题是,我如何申请%替换的新字符串(strs)?

0 投票
2 回答
1417 浏览

regex - Lua 模式括号和 0 或 1 次出现

我正在尝试将字符串与模式匹配,但有一件事我还没有弄清楚。在正则表达式中,我会这样做:

我希望所有字符串都匹配。在 Lua 模式匹配中,我无法让它工作。

即使是这样一个更简单的例子也行不通:

有人知道怎么做这个吗?

0 投票
1 回答
3315 浏览

string - Lua - 使用模式提取字符串

我刚刚开始使用 Lua 模式。

我有一个字符串 |2|34|56|1

如何从字符串中提取数字?

我可以手动解析字符串并排除所有“|” 人物。但我确信使用 Lua 模式会简单得多。

在这种情况下,模式如何提供帮助?

0 投票
2 回答
2188 浏览

lua - 在这个 Lua 模式中括号的用途是什么?

基本字符串是:IP: 192.168.0.1

将该字符串传递给 string.gmatch 函数(除了下面的模式)将返回以下结果:

模式:IP: (%d+.%d+.%d+.%d+) -->192.168.0.1

模式:IP: %d+.%d+.%d+.%d+ -->IP:192.168.0.1

我的问题是,这些括号对 Lua 模式匹配引擎的含义是什么?为什么通过在第一个模式中使用括号,IP:省略了字符串但在第二个模式中没有?

0 投票
1 回答
2697 浏览

lua - 如何使用 string.gsub 替换 Lua 中的括号?

我有一个函数,用于用几个字符或数字替换一些单词。我string.gsub()以这种方式使用函数:

这对带有数字、字母、空格、,和的字符串非常有效/。我也想替换括号,比如(and )。但简单地插入()我的模式是行不通的。我也尝试过%(%)但没有成功。如何使用string.gsub()方法中的模式替换 Lua 中的括号?

0 投票
3 回答
2975 浏览

lua - Lua:字符串后的模式匹配?

例如,我有这种格式的任意行:

目录 C:\Program Files\abc\def\

或类似的东西。

启用日志

我希望能够从第一行中提取“C:\Program Files\ab\def\”部分。同样,我想在第二行中提取“开”。变量和它的值之间的空格是任意的。我会知道变量的名称,但我需要根据它提取值。

所以基本上,我想删除第一个单词和第一个单词后面的一些任意空格,并返回直到行尾的剩余内容。

0 投票
1 回答
2392 浏览

string - Lua 边界模式匹配(全词搜索)

有人可以帮我解决这个问题吗:

所以边界模式发现整个单词没有问题,gsub 计算整个单词没有问题但是如果搜索字符串有数字怎么办?

如果数字不在搜索字符串的开头或结尾,似乎可以使用