问题标签 [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.
string - 从字符串中取出两个数字时出错
我只是在玩 Lua,试图制作一个使用字符串操作的计算器。基本上我从一个字符串中取出两个数字,然后对它们做一些事情(+ - * /)。我可以成功取出一个数字x
,但取出一个数字y
总是返回nil
。任何人都可以帮忙吗?
string - 使用 Lua 字符串匹配的计算器
我最近在玩字符串操作,试图制作一个只接受一个字符串并返回答案的计算器。我知道我可以简单地使用 loadstring 来执行此操作,但我正在尝试了解有关字符串操作的更多信息。到目前为止,这就是我所拥有的:有什么方法可以提高效率吗?
string - Lua 中 ^ 和 gsub 的使用
我有上面提到的代码。我想知道
^
上面代码中运算符的用法。我知道^
在集合中使用它来排除/否定集合中的后续值,但由于它不是集合,所以^
意味着什么?为什么
gsub
在上面的代码中使用了两次?这两次,字母都被转换为大写!请解释上面代码行中到底发生了什么。
string - 在 Lua 中使用 "("?) 与 string.find 及其返回的值
这里的作用是什么 ?
?我相信它正在检查双引号,但我真的不明白"("?)
.
我读到string.find
返回匹配模式的开始和结束索引。但是根据上面的代码行a
,i
和c
,正在返回 3 个值。这里返回的第三个值是什么?
string - Lua 模式中“*”和“+”的使用
在上面的代码中,如果我使用%d+
,我会得到12,15
预期的结果,但是使用%d*
,它会返回1,0
。两者之间的唯一区别是它也*
接受 0 值但+
接受 1 或更多。但是为什么又回来了1,0
?
lua - 正则表达式 (\\.|.) 的任何 Lua 模式替代方案?
有一个常见的习惯用法是遍历一个字符串,它的字符可以使用 regex 用反斜杠转义(\\.|.)
,如下所示:
那是在 JavaScript 中。此代码将字符串更改some\astring
为[s][o][m][e][\a][s][t][r][i][n][g]
.
我知道 Lua 模式不支持 OR 运算符,所以我们不能将这个正则表达式直接翻译成 Lua 模式。
然而,我想知道:是否有另一种方法可以在 Lua 中使用 Lua 模式来执行此操作(遍历可能转义的字符)?
string - Lua 中的 String.format 和 gsub
我有上面的代码块。
string.format
函数将分隔符作为其第二个参数。这是为什么?我们通常将文本块作为需要格式化的第二个参数。gsub
函数通常替换给定的模式。他function(c)
在其中扮演什么角色gsub
?它是如何在这里调用和使用的?从哪里来?c
_function(c)
string - Lua gmatch 奇数字符(斯洛伐克字母表)
我正在尝试从斯洛伐克语中的单词字符串中提取字符。例如,“TURTLE”的单词是“KORYTNAČKA”。但是,当我尝试从字符串中提取它时,它会跳过“Č”字符:
我正在阅读这个页面,我也尝试将字符串本身作为一个集合粘贴,但它出现了一些奇怪的东西:
有谁知道如何解决这个问题?
string - Lua 5.1 中“[\0-\x7F\xC2-\xF4][\x80-\xBF]*”的等效模式
在回答这个问题时,我编写了这段代码来遍历字符串中的 UTF-8 字节序列:
它在 Lua 5.2 中工作,但是在 Lua 5.1 中,它报告了一个错误:
格式错误的模式(缺少']')
\xhh
我记得在 Lua 5.1 中,不支持字符串文字,所以我将其修改为:
但是错误还是一样,怎么解决呢?
string - 可能在字符串中的字符的模式
我知道我应该使用它string.match()
来执行此操作,但我无法匹配字符串中“可能”的字符,例如:
我可以轻松地执行以下操作:
如果测试字符串的末尾总是有“_[0-9]+”,这很好,但可能存在末尾没有数字的情况。我将如何在 Lua 中解决这个问题?
在 Python 中,我可以执行以下操作:
我认为这样的事情会起作用:
但它没有。结果=nil
但是,以下确实有效,但只能找到第一个数字: