理解某些Lua模式为何失败的问题

理解某些Lua模式为何失败的问题,lua,lua-patterns,Lua,Lua Patterns,考虑在lua cli上完成的以下测试: Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio > line = "Conference 1-12345-a.b.c (1 member rate: 32000 flags: running|answered|enforce_min|dynamic|exit_sound|enter_sound)" 我正试图从会议1-12345-a.b.c 这项工作: > searchtextok = "

考虑在lua cli上完成的以下测试:

Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> line = "Conference 1-12345-a.b.c (1 member rate: 32000 flags: running|answered|enforce_min|dynamic|exit_sound|enter_sound)"
我正试图从
会议1-12345-a.b.c

这项工作:

> searchtextok = "1%-(%d%d%d%d)"
> print(string.match(line, searchtextok));
1234
但这失败了:

> searchtextok = "1%-(%d%d%d%d)%-"
> print(string.match(line, searchtextok));
nil

但我不明白为什么。我目前正在阅读,但如果你有任何指针,那就太好了。

你的第一个模式的意思是“1,后面是破折号,后面是4位数字”。第二个相同,但后面跟着破折号。因为在这四个数字之后有另一个数字(1-12345-a.b.c)而不是破折号,所以匹配失败。
您可能希望匹配5位数字,而不是4位数字。只需将其更改为:

"1%-(%d%d%d%d%d)%-"

是的,我现在明白了。我是个白痴!我也在看这个long@Happydevdays,有时我们会被愚蠢的事情缠住。每个人都会这样。谢谢你耐心的帮助。我喜欢像你这样的人出现在电视上。太好了。再次感谢。