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
-- 获取目标字符串 _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
相关文章推荐
- php正则表达式 获取开始字符串和结束字符串中的部分内容
- Java删除字符串中指定开始到指定结束之间的内容
- PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据
- PHP正则表达式 获取开始字符串和结束字符串中的部分内容
- 正则表达式之位置指定(匹配表达式之前或者之后)附匹配以某内容开始,某内容结束的通用正则
- 取以某字符开始,以某字符结束的字符串(正则表达式:VB.net)
- 指定开始字符串和结束字符串,截取中间的字符
- C#中切割字符串之正则表达式应用
- 一个截取字符串函数,参数列表(源字符串,开始字符串,结束字符串)
- linux下查找当前目录下内容包含字符串“***”的文件
- java编程心得(六)——BufferedReader读取txt文本内容到指定字符串结束
- shell 字符串 开始 结束 子字符串
- Qt WebKit可以做什么(三)——开发包含丰富web内容的本地应用
- Oracle 触发器中,如果取一个包含空格VARCHAR2类型的字符串,空格后的内容取不到
- c# 用正则表达式获取开始和结束字符串中间的值
- Qt WebKit可以做什么(三)——开发包含丰富web内容的本地应用
- SQLSERVER 判断一个字符串是否包含特殊字符
- C# :从一段字符串中,输入开始和结束的字符,取中间的字符?
- JDom生成xml文件时元素值为空时生成的元素包含开始和结束标签的方法
- Qt WebKit可以做什么(三)——开发包含丰富web内容的本地应用