问题标签 [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 投票
3 回答
1093 浏览

svg - 在 Lua 中解析 SVG 路径定义(“d”)

我有这种形式的路径定义(示例):

在 Lua 中,它变成:

我怎么能在纯 Lua 中解析它以获得类似的东西:

或者,完美:

Lua 模式有这样的能力吗?

编辑:我想涵盖所有有效的 SVG 路径,或者至少是 Inkscape 生成的。 规范 inkscape 生成的路径

0 投票
2 回答
787 浏览

string - Lua string.match() (Corona SDK)

我试图从服务器响应中提取身份验证代码,例如:

GET /?state=authenticated&code=U946s9lHouBGWy8o45bXSRSXGzTqd0Ys HTTP/1.1

我正在使用 lua/Corona;

我得到一个零回应,不知道我做错了什么......有人知道或有更好的主意吗?

wkr,

-肖恩

0 投票
2 回答
3209 浏览

string - 如何在 Lua 中实现 string.rfind

在 Lua 中只有string.find,但有时string.rfind需要。例如,解析目录和文件路径,如:

怎么写这样的string.rfind

0 投票
2 回答
1021 浏览

string - 电晕 string.find() :寻找“。”

我试图将一个字符串分成两部分,由一个'.'字符分割。但是string.find()功能无法处理

我有这种字符串

我试过

但他们都没有工作。String.find() 总是返回1false。可能是什么问题?

编辑:我也尝试使用gsub和更改 . 与另一个角色,但它也没有工作

0 投票
1 回答
649 浏览

lua - 使用 string.gsbu 查找多个字符

我想string.gsub用来搜索电话号码字段并删除任何“-”或空格。

有没有办法将我在下面的两个语句合并为一个?

0 投票
1 回答
614 浏览

json - 在带括号的 Lua 中使用模式匹配时,如何使用“%2”获取捕获组

我正在尝试解析文本文件并使用 lua 将其转换为表(或 JSON)。示例测试文件如下:

请注意,每行中的数据可以根据方向(正向和反向路径流)分为两部分。如果您有一个 linux 系统/openwrt 路由器,您可以使用该conntrack命令或通过阅读/proc/net/nf_conntrack.

我希望检索的是以下信息:

其中 rbytes, rpackets 用于反向的字节和数据包(在我的示例文本文件中的第 1 行的后半部分)。

我的解析器如下:*

调用上面的函数(在split代码中包含一个简单的方法之后),我只能解析文件到每行的前半部分。所以基本上,没有rbytes或被rpackets解析。我知道负责这个的代码是

line = line:match("^(.-( [^ =]+=).-)%2")

代码中此行之后的print(line)语句向我显示:

ipv4 2 tcp 6 3598 已建立 src=192.168.1.117 dst=137.194.2.78 运动=59078 dport=80 数据包=4 字节=298

因此,该语句使用一种令人困惑的模式匹配来分割文件的每一行,我在玩了一下之后就明白了。我仍然没有得到的部分是%2在捕获模式之后发生的。我知道它用于以某种方式访问​​捕获的模式,但是我应该如何更改此语句以便line包含正向路径字节和数据包计数以及反向路径?我的主要问题是:这个陈述中的模式到底是什么?我可能会删除这一行来解析整个语句,但我想了解原始编码人员为什么这样做。

我已经阅读了 lua 模式匹配手册,但我仍然对使用%<some_number>. 为什么不起作用%1%3不起作用?

我发现了两个相关的 stackoverflow 问题:Q1Q2。更深入的解释将不胜感激。

此外,目前我无法使用我在此处提供的代码恢复超时值( line1 中的第 5 个字3598)或连接状态(ESTABLISHED, )。[ASSURED]我仍然是 lua 的初学者,希望能尽快解决这个问题。

*注意:这个解析器是我在 openwrt 路由器上的 luci sys 模块中可用的解析器的固定版本。有关详细信息,请参阅原始 luci.sys 源代码

在使用姿态调整 12.09 时,我注意到他们的 net.conntrack() 由于无法将对象解析为正确的 JSON 格式而无法正常工作。使用此模式的相关函数在 sys.lua 文件中给出,称为函数 conntrack(callback) 和内部函数 _parse_mixed_record(cnt, delimiter)。我的路由器使用了 luci-0.11 和 lua 5.1.4。

0 投票
1 回答
1250 浏览

regex - Lua:模式匹配多字符与?重复运算符

根据文档,所有 Lua 重复运算符仅适用于单个字符,因此您可以匹配

但不能匹配多字符串:

文档说通过“多种模式和自定义逻辑”是可能的,但我不知道这意味着什么。有人可以提供一种模式匹配上述内容的方法吗?基本上,12应该选择匹配全有或全无,并返回数字字符串的其余部分。

0 投票
3 回答
1426 浏览

string - Lua 中的字符串操作:将奇数字符变为大写

我正在尝试使用一些操作字符串的函数在 Lua 中创建一个库。我想做一个函数,仅在单词的奇数字符上将字母大小写更改为大写。

这是一个例子:

我尝试了“gsub”功能,但我发现它真的很难使用。

0 投票
4 回答
8291 浏览

string - Lua 的 string.format 的转义字符串

我有一个字符串,我需要添加一个变量,所以我使用该string.format方法,但该字符串还包含符号"%20"(不确定它代表什么,可能是空格或其他东西)。无论如何,由于字符串包含多个"%",我只想将变量添加到第一个变量以设置 id,有没有办法在点或什么处转义字符串?

就像现在一样:

我收到bad argument #3 to 'format' (no value).错误 - 因为它需要传递 3 个变量。

0 投票
1 回答
4684 浏览

string - 使用 Lua 从 URL 获取文件名

如何使用Lua字符串操作从URL获取文件名。

我有这个网址

https://thisisarandomsite.com/some_dir/src/blah/blah/7fd34a0945b036685bbd6cc2583a5c30.jpg

我想得到7fd34a0945b036685bbd6cc2583a5c30.jpg它,它可以是一个随机站点,所以站点名称不是静态的。