我正在尝试匹配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的模式很奇怪。
我想念什么?
答案 0 :(得分:2)
您的模式很接近,您忽略了一个数字的多个实例,可以通过使用+
来实现,例如%d+
。
您还没有在模式中正确使用[
,(
和.
。
模式中的[
个将创建一组您要匹配的字符,例如[abc]
表示您要匹配任何a
个b
或{{ 1}}。
c
用于定义捕获,因此在匹配时要返回的特定值,而不是整个字符串,为了将其用作匹配的字符,您需要使用{进行转义{1}}。
(
将匹配任何字符,而不是具体的%
,如果要具体匹配.
,则需要添加.
才能转义。
%
在这里,如果输入的字符串与模式匹配,则会看到打印的字符串,否则将显示nil。
建议资源:https://dialogflow.com/docs/reference/v1-v2-migration-guide