考虑在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)"
我试图从12345
Conference 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
但我不明白为什么。我目前正在阅读this,但如果您有任何指示,那就太棒了。
答案 0 :(得分:3)
你的第一个模式是“1,然后是破折号,后跟4个数字”。第二个是相同的,但后跟一个破折号。由于四位之后你有另一个数字( 1-1234 5 -abc )而不是破折号,比赛失败了。
<小时/> 你可能想匹配5而不是4位数。只需将其更改为:
"1%-(%d%d%d%d%d)%-"