LUA 应用切割包含特殊开始,结束字符串的内容

来源:互联网 发布:用友软件购买ufsky 编辑:程序博客网 时间:2024/05/30 02:53

应用切割包含特殊开始,结束字符串的内容


-- 获取目标字符串 _sStr(string) 字符串内容 _sFir(string) 开始符号 _sFin(string) 结束符号-- _speKey(string)是否插入一个特殊key 用于之后反切割 -- 应用切割表情 "@微笑#内容" ("@微笑#内容","@","#") sResidueContent = "内容" tTakeOutList = {{@微笑#}}function getTargetStr(_sStr,_sFir,_sFin,_speKey)    if _sStr then        local strCopy = _sStr or ""        local nFsindex, nFeindex = string.find(strCopy, _sFir) -- 开始字符串的检测        local nSsindex, nSeindex = string.find(strCopy, _sFin) -- 结束字符串的检测        local strt1 = "" --前部分        local strt2 = "" --中间部分        local strt3 = "" --后面部分        local tTakeOutList = {} --        local sResidueContent = ""        if (nFsindex ~= nil and nSsindex ~= nil) then            while(nFsindex ~= nil and nSsindex ~= nil) do                --把切割的内容加入列表中                strt2 =  getMmongStr(strCopy,_sFir,_sFin)                if strt2 ~= "" then                    strRemain =  _sFir..strt2.._sFin                    table.insert(tTakeOutList,strRemain)                end                --把前部分切割的内容连起来                if _speKey then                    strt1 = strt1..string.sub(strCopy, 1, nFsindex-1).._speKey                else                    strt1 = strt1..string.sub(strCopy, 1, nFsindex-1)                end                --切割最后部分的内容                strt3 = string.sub(strCopy, nSeindex+1)                --保留切割后内容                strCopy = strt3                --继续寻找还需不需要再次切割                nFsindex, nFeindex = string.find(strCopy, _sFir)                nSsindex, nSeindex = string.find(strCopy, _sFin)            end            sResidueContent = strt1..strt3 --合并切割后的内容        else            sResidueContent = strCopy --没有可切割的内容        end         return sResidueContent,tTakeOutList --返回切割剩余的内容,切割掉的内容(列表)    else        return ""    endend--获取特殊符号字符串中的内容 _sStr(string) 字符串内容 _sFir(string) 开始符号 _sFin(string) 结束符号function getMmongStr(_sStr,_sFir,_sFin)    local sNew = ""    local index1 = string.find(_sStr,_sFir)    local index2 = string.find(_sStr,_sFin)    if index1 and index2 then         sNew = string.sub(_sStr,index1+1,index2-1)    end    return sNewend





0 0
原创粉丝点击