您的位置:首页 > 编程语言 > Lua

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

2017-03-15 10:40 267 查看
应用切割包含特殊开始,结束字符串的内容

-- 获取目标字符串 _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 ""
end
end

--获取特殊符号字符串中的内容 _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 sNew
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐