代码是这样的:
function split(s,p)
a={}
string.gsub(s,'[^'..p..']+',function(w) table.insert(a,w) end)
return unpack(a)
en
string.gsub这个函数很有意思:
第一个参数是字符串,
第二个参数是模式识别pattern,类似于正则表达式,其中”[^p]+“表示识别不在p中出现的字符1个或多个,[]表示一个集合,^表示取补集,+表示出现一个或多个(*表示0个或多个个)
第三个参数可以有三种:
如果是字符串,则按照pattern识别的每个串都会按给出的这个串来替换原字符串
如果是table,则按pattern为key在table中查找value来替换原字符串
如果是function,则执行这个function。以上的代码就是利用这个啦~
代码用例:
function split(s,p)
a={}
string.gsub(s,'[^'..p..']+',function(w) table.insert(a,w) end)
return unpack(a)
end
n=split(io.read(),'.')
for i=1,n do
print(split(io.read(),' '))
end
可以如果数字n,然后读入n个字符串,每个按照空格隔开