【问题标题】:Lua string.find correct format?Lua string.find正确的格式?
【发布时间】:2016-02-13 20:10:34
【问题描述】:

我有一个很简单的问题,但我的谷歌研究没有帮助..我对 Lua 很陌生,所以..

我在局部变量中存储了字符串“XXXX_YYYYYY_zzzzzz”,我想解析它并获取 3 个新的局部变量。我应该使用 string.find 吗?

local str_ = "XXXX_YYYYY_zzzzzz"    
local first_, second_, third_ = strind.find(str_, "^(%w+)_(%w+)_(%w+)$")

【问题讨论】:

    标签: string lua string-matching lua-patterns


    【解决方案1】:

    改用string.match

    local str_ = "XXXX_YYYYY_zzzzzz"    
    local first_, second_, third_ = str_:match "^([^_]+)_([^_]+)_([^_]+)$"
    

    看看string library on lua-users wiki

    string.find 将另外返回匹配子字符串所在/找到的索引。这两个(开始和结束)索引对您的情况没有用,这就是为什么 string.match 会是一个更好的工具。

    【讨论】:

    • 您可以使用.- 而不是%w+,以防字段包含标点符号。
    • @lhf 我宁愿选择[^_]。无论如何,这些推测将取决于 OP 方面的更多投入。
    猜你喜欢
    • 1970-01-01
    • 2017-08-08
    • 2013-09-29
    • 2014-08-04
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2021-11-02
    相关资源
    最近更新 更多