lua - 在 LUA 中进行模式匹配时,如何将单词与数字组合起来?

标签 lua lua-patterns

我正在尝试匹配 LUA 中遵循 Word 100.00% ~(45.56, 34.76) 格式的任何字符串。因此,我希望做一个(理论上)与此接近的正则表达式:

%D%s[%d%.%d]%%(%d.%d, %d.%d)

但到目前为止我还没有运气。 LUA 的模式很奇怪。

我错过了什么?

最佳答案

您的模式很接近,您忽略了允许数字的多个实例,您可以通过使用 + 来做到这一点就像 %d+

您也没有使用[ , (.正确地在模式中。 [模式中的 s 将创建一组您尝试匹配的字符,例如 [abc]意味着您正在寻找匹配任何 a bc在那个位置。 (用于定义捕获,以便在匹配时返回您想要返回的特定值,而不是整个字符串,为了将其用作匹配的字符,您需要使用 % 对其进行转义。 。 .将匹配任何字符,而不是专门匹配 .您需要添加 %如果你想匹配 . 则要转义具体来说。

        local str = "Word 100.00% ~(45.56, 34.76)"

        local pattern = "%w+%s%d+%.%d+%%%s~%(%d+%.%d+, %d+%.%d+%)"

        print(string.match(str, pattern))

在这里,如果输入字符串与模式匹配,您将看到打印,否则您将看到 nil。

建议资源:Understanding Lua Patterns

关于lua - 在 LUA 中进行模式匹配时,如何将单词与数字组合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57548583/

相关文章:

string - 卢阿 : Incorrect string length for String with Special Characters

string - Lua 模式在行尾时停止

string - 在 Lua 中匹配即将到来的日期

string - 迭代包括空行在内的行

lua - 如何在表格内打印表格的内容? [路亚]

Lua问题: attempt to call global 'unpack' (a nil value)

algorithm - 线性回归因子

lua - 安装了多个版本的 Lua 后,是否可以指定要安装到哪一个 luarock?

string - 如何检查字符串中名称的出现?

string - 从模式中提取 Lua XML