Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 可能匹配(看似)无效的Lua模式_String_Lua_Pattern Matching_Lua 5.2 - Fatal编程技术网

String 可能匹配(看似)无效的Lua模式

String 可能匹配(看似)无效的Lua模式,string,lua,pattern-matching,lua-5.2,String,Lua,Pattern Matching,Lua 5.2,我知道你不能在卢阿重复比赛分组。例如,如果我想匹配两个连续的“45”,我不能: print(string.find("some 4545 text", "(%d%d)+")) 将打印nil(未找到匹配项) 但是,由于find(…)没有报告错误(对于无效模式“%”和“(%d”产生错误),因此我相信模式”(%d%d)+“是有效的 如果“(%d%d)+”是一个有效的模式,它与什么匹配?如果不匹配,是否有特殊原因不产生错误?“(%d%d)+”是一个有效的模式。它匹配例如“一些45+67文本”或“一些4

我知道你不能在卢阿重复比赛分组。例如,如果我想匹配两个连续的
“45”
,我不能:

print(string.find("some 4545 text", "(%d%d)+"))
将打印
nil
(未找到匹配项)

但是,由于
find(…)
没有报告错误(对于无效模式
“%”
“(%d”
产生错误),因此我相信模式
”(%d%d)+“
是有效的


如果
“(%d%d)+”
是一个有效的模式,它与什么匹配?如果不匹配,是否有特殊原因不产生错误?

“(%d%d)+”是一个有效的模式。它匹配例如“一些45+67文本”或“一些4567+文本”,并捕获第一种情况下的“45”和“67”第二个。

要匹配连续出现的两个数字串,请使用
“(%d+)%1”

谢谢,尽管我已经知道了。我的问题是
”(%d%d)+“
模式应该匹配什么(如果它有效)。啊哈,
+
只是变成了一个文字而不是一个元字符(这与我以前使用的正则表达式/模式匹配引擎大不相同)。谢谢!我知道的其他正则表达式都有这种模糊性:括号用于分组(在这里+是有意义的)和捕获。在lua模式中,没有分组,因此……但是,是的,手册可以更明确地说明这一点。