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)))