Corona string.find() :查找“.”

我正试图将一个字符串分成两部分,以一个 '.' 字符为分隔符。但是 string.find() 函数无法处理。

我有这样一个字符串:

local test = "345345.57573"

我尝试了以下内容:

local start = string.find( test, "." )
local start = string.find( test, "\." )
local start = string.find( test, "(%w+).(%w+)" )

但它们都没有起作用。string.find() 总是返回 1,即假值。可能是什么问题呢?

编辑: 我还尝试使用 gsub. 替换为另一个字符,但也没有起作用。

点赞
用户1605727
用户1605727

尝试这个例子

function split(pString, pPattern)

    if string.find(pString,".") then
        pString = string.gsub(pString,"%.","'.'")
    end

    if pPattern == "." then
        pPattern = "'.'"
    end

    local Table = {}  -- 注意:在 Lua-5.0 中使用 {n = 0}
    local fpat = "(.-)" .. pPattern
    local last_end = 1
    local s, e, cap = pString:find(fpat, 1)
    while s do
        if s ~= 1 or cap ~= "" then
            table.insert(Table,cap)
        end
        last_end = e+1
        s, e, cap = pString:find(fpat, last_end)
    end
    if last_end <= #pString then
        cap = pString:sub(last_end)
        table.insert(Table, cap)
    end

    return Table
end

local myDataTable = split("345345.57573",".")

-- 循环打印最后一个分割数据表

print(myDataTable[1]) --345345
print(myDataTable[2]) --57573

参考

2013-07-08 09:05:35
用户1009479
用户1009479

使用 %. 可以匹配一个模式。

local start = string.find( test, "%." )

与许多其他编程语言不同,Lua 使用 % 来转义以下特殊字符:

 ( ) . % + - * ? [ ] ^ $

如果不确定是否需要转义字符,您可以使用 % 来转义任何非字母数字字符,即使该字符不是上述特殊字符也可以在 Lua 中使用。

2013-07-08 11:08:33