【问题标题】:Problems understanding why certain Lua pattern fails理解为什么某些 Lua 模式失败的问题
【发布时间】:2015-11-28 04:39:32
【问题描述】:

考虑以下在 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)"

我正在尝试从Conference 1-12345-a.b.c 中提取12345

这行得通:

> 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,但如果您有任何指点,那就太好了。

【问题讨论】:

    标签: lua lua-patterns


    【解决方案1】:

    您的第一个模式的意思是“1,后跟破折号,后跟 4 位数字”。第二个是相同的,但后面跟着一个破折号。因为在四位数字之后你有另一个数字(1-12345-a.b.c)而不是破折号,比赛失败。


    您可能想匹配 5,而不是 4 位数。只需将其更改为:
    "1%-(%d%d%d%d%d)%-"
    

    【讨论】:

    • 是的,我现在明白了。我是个白痴!看这个太久了
    • @Happydevdays,有时我们会陷入愚蠢的事情。发生在每个人身上。
    • 感谢您的耐心帮助。当像你这样的人在 stackoverflow 上时,我喜欢它。很好。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2011-03-23
    • 2016-05-04
    相关资源
    最近更新 更多