Corona string.find():Finding"&引用;

Corona string.find():Finding"&引用;,string,lua,coronasdk,lua-patterns,String,Lua,Coronasdk,Lua Patterns,我试图将字符串分成两部分,由字符分隔。字符。但是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()始终返回为false的

我试图将字符串分成两部分,由
字符分隔。
字符。但是
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()始终返回为false的
1
。 有什么问题吗

编辑: 我还尝试使用
gsub
和change。使用另一个字符,但也不起作用

试试这个例子

function split(pString, pPattern)

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

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

    local Table = {}  -- NOTE: use {n = 0} in Lua-5.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",".")

--Loop Through and print the last split data table

print(myDataTable[1]) --345345
print(myDataTable[2]) --57573
功能拆分(pString、pPattern)
如果string.find(pString,“.”),则
pString=string.gsub(pString,“%.”,“.”)
结束
如果pPattern==”,则
pPattern=“”.”
结束
本地表={}——注意:在Lua-5.0中使用{n=0}
本地fpat=“(.-)”。。帕滕
本地最后\u端=1
局部s,e,cap=pString:查找(fpat,1)
当我们做的时候
如果s~=1或cap~='',则
表.插入(表,cap)
结束
最后一端=e+1
s、 e,cap=pString:find(fpat,last_end)
结束

如果最后一个端点只需在模式中使用
%.
即可匹配

local start = string.find( test, "%." )
与许多其他语言不同,Lua使用
%
来转义以下神奇字符:

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

如果有疑问,您可以使用
%
转义任何非字母数字字符,即使该字符不是魔法字符之一,Lua也可以使用它。

谢谢,它可以完美地工作。。似乎我应该使用“%”而不是“.”这也解决了问题。当然,如果您只需要这两个数字,那么a={string.match(“2353445.23434”,“(%w+)。(%w+)}将返回一个表,其中的数字为。