Lua字符串查找的正确格式是什么?

3

我有一个非常简单的问题,但我的谷歌搜索没有帮助..我对Lua还很陌生..

我有一个存储在本地变量中的字符串"XXXX_YYYYYY_zzzzzz",我想解析它并获取3个新的本地变量。我应该使用string.find吗?

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

5
使用 string.match 代替:
local str_ = "XXXX_YYYYY_zzzzzz"    
local first_, second_, third_ = str_:match "^([^_]+)_([^_]+)_([^_]+)$"

请查看lua-users wiki上的string库string.find会返回匹配子字符串的起始和结束索引。这两个索引对于您的情况没有用处,因此string.match是更好的工具。

可以使用“.-”代替“%w+”,以防字段包含标点符号。 - lhf
@lhf 我宁愿选择 [^_]。无论如何,这些推测都取决于更多来自 OP 的输入。 - hjpotter92

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接