在LUA中进行模式匹配时,如何将单词和数字组合在一起?

时间:2019-08-18 21:43:05

标签: lua lua-patterns

我正在尝试匹配LUA中格式为 for i in range(len(messages)): if messages[i]['name'] == data[key1]: messages[i]['Flag']=2 elif messages[i]['name'] == data[key2]: messages[i]['Flag']=2 的所有字符串。因此,我正在寻找一个正则表达式(理论上)接近于此:

Word 100.00% ~(45.56, 34.76)

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

我想念什么?

1 个答案:

答案 0 :(得分:2)

您的模式很接近,您忽略了一个数字的多个实例,可以通过使用+来实现,例如%d+

您还没有在模式中正确使用[(.。 模式中的[个将创建一组您要匹配的字符,例如[abc]表示您要匹配任何ab或{{ 1}}。 c用于定义捕获,因此在匹配时要返回的特定值,而不是整个字符串,为了将其用作匹配的字符,您需要使用{进行转义{1}}。 (将匹配任何字符,而不是具体的%,如果要具体匹配.,则需要添加.才能转义。

%

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

建议资源:https://dialogflow.com/docs/reference/v1-v2-migration-guide