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

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