lua string操作

1、string.gmatch(返回查找到字符串的迭代器)

t = {}
s = "from=world, to=Lua"
for k, v in string.gmatch(s, "(%w+)=(%w+)") do
 t[k]=v
end
for k, v in pairs(t) do
 print(k,v)
end

string.gmatch(字符串,模式字符串,起始位置): 在字符串中查找模式字符串,返回值为一个迭代器(function类型)

2、string.gsub(字符串,模式化字符串,替换字符串):返回替换之后的字符串,以及替换的次数

3、string.gfind(字符串,模式字符串,起始位置): 返回在字符串中所匹配的模式字符串的一个迭代器

4、string.find(字符串,模式字符串,起始位置):他只查一个,匹配一个之后就不继续了
5、string.match(字符串,模式字符串,起始位置)只寻找源字串str中的第一个配对. 参数init可选, 指定搜寻过程的起点, 默认为1.
在成功配对时, 函数将返回配对表达式中的所有捕获结果; 如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil.
6、string.reverse(字符串)返回一个字符串的倒序排列

7、string.dump(function) 返回指定函数的二进制代码(函数必须是一个Lua函数,并且没有上值)


LUA loadstring

类似加载,从给定的字符串得到块。
要加载和运行一个给定的字符串

 

一般如下用法:

assert(loadstring(script))()

 

f = loadstring("a = 1")  
相当于:
f = loadstring("function() a = 1 end") 

复杂用法如下:

下面是动态加载字符串,并执行,结果为一个table

local  script="local ee={[0]={id=0,lv=5,text='yy'},[1]={id=1,lv=3,text='zz'}}  return ee"
local tb=assert(loadstring(script))()
print(tb[0].text)

下面是动态加载字符串,并执行,结果为方法

local  addscript="function dadd(a,b) return a+b  end"
assert(loadstring(addscript))()
print(tostring(dadd(2,3)))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章