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

【步兵 lua】匹配模式 之 花式split

2016-06-13 10:55 344 查看

【步兵 lua】匹配模式 之 花式split by EOS.

练习匹配模式自己写的一些东西,拿出来分享一下,希望对大家有帮助=。=

代码

local str = "a/b/c/d//e"

print"\nsplit first:"
local iter = string.gmatch(str, "[^/]+")
for v in iter do
print(v, type(v))
end

print"\nsplit second:"
local iter = string.gmatch(str, "(.-)/")
local last = string.match(str, ".*/(.*)")
for v in iter do
print(v, type(v))
end
print(last, type(last))

print"\nsplit third:"
local str2 = string.gsub(str, "(//)",function(p1)
if(p1 == "")then p1 = "nil"end
return "/nil/"
end)
for v in string.gmatch(str2, "[^/]+") do
print(v, type(v))
end

print"\nsplit fourth:"
local str2 = string.gsub(str, "(.-)/",function(p1, p2)
if(p1 == "")then p1 = "nil"end
return p1.."/"
end)
for v in string.gmatch(str2, "[^/]+") do
print(v, type(v))
end

print"\nsplit fifth:"
local str2 = str
local arr = {}
while true do
local b,e = string.find(str2, "/")
if b == nil then
table.insert(arr, str2)
break
end
table.insert(arr, string.sub(str2, 1, e-1))
str2 = string.sub(str2, e+1, -1)
end
for k,v in ipairs(arr) do
print(v, type(v))
end

print"\nsplit sixth:"
local arr = {}
local str2 = str
while string.find(str2, "/") do
arr[#arr+1] = string.match(str2, "(.-)/")
str2 = string.gsub(str2, "(.-)/", "", 1)
end
arr[#arr+1] = str2
for k,v in pairs(arr) do
print(v, type(v))
end


输出



上班ING,偷偷上传的。。 = 3= 干活去了

See Again~

之前

真爱无价,欢迎打赏~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua 匹配模式 split