参考文档
http://www.lua.org/manual/5.3/manual.html#pdf-string Manipulation
string.byte (s [, i [, j]])
-- 功能: 返回字符 s[i], s[i+1], ..., s[j]的数字码。
-- 参数: 默认值: i=1, j=i.
-- 返回值: 返回数字码串
print(string.byte("acb", 1,3)) --> 97 99 98
string.char (···)
-- 功能: 将number的数字码转为字符
-- 参数: number
-- 返回值: 返回字符串
print(string.char(97, 99, 98)) --> acb
string.dump (function [, strip])
-- 功能: 将一个函数序列化,返回序列化后的二进制字符串。之后可以使用load加载这个字符串。
-- 参数: strip如果为true,序列化后的字符串将不会包含任何debug信息,可以节省空间。
-- 返回值: 返回序列化后的二进制字符串
-- 普通函数
function dumpTest(v)
print("dumpTest: " .. v)
end
dumpString = string.dump(dumpTest)
loadFunc = load(dumpString)
loadFunc("abcd") -> dumpTest: abcd
-- 闭包函数
function dumpTestClosure()
i = 0
local function innerFunc()
i = i + 1
print("inner: " .. i)
end
return innerFunc
end
closureFunc = dumpTestClosure()
closureFunc() --> inner: 1
closureFunc() --> inner: 2
dumpString = string.dump(closureFunc,true)
loadFunc = load(dumpString)
loadFunc() --> inner: 3
string.find (s, pattern [, init [, plain]])
-- 功能: 查找字符串s中第一个符合pattern的位置
-- 参数: init 搜索的起始位置,默认 init=1(可以为负数,表示从后往前数的字符个数)
-- plain 默认 plain=false,如果为true表示关闭模式匹配,只做简单的查找子串的操作。
-- 返回值: 找到返回起始位置和终止位置,没找到返回nil
print(string.find("abcdabcdabcd", "cda")) --> 3 5
print(string.find("abcdabcdabcd", "d")) --> 4 4
print(string.find("abcdabcdabcd", "123")) --> nil
print(string.find("abcdabcdabcd", "cda", 4)) --> 7 9
print(string.find("abcdabcdabcd", "cda", -9)) --> 7 9
print(string.find("abcdabcdabcd", "cda", -11)) --> 3 5
gsub
print(string.gsub("one string", "one", "another"))