print(string.len("我真的好想再活500年!"))
print(string.rep("a", 2 ^ 2))
print(string.lower("SDFDSFdf"))
print(string.upper("a??o"))
s = "[in brackets]"
print(string.sub(s,2,-2))
print(string.sub(s,2,3))
print(string.char(97))
i = 99
print(string.char(i, i + 1, i + 2))
print(string.byte("abc"))
print(string.byte("abc", 2))
print(string.byte("abc", -1))
print(string.format("pi = %.4f", 3.141592657))
print(string.format("%02d/%02d/%04d", 5, 11, 1990))
s = "hello world"
i, j = string.find(s, "world")
print(i, j)
--裁切 一部分
print(string.sub(s, i, j))
i, j = string.find(s, "l")
print(i, j)
print(string.find(s, "lll"))
--------------------------------------------------------
s= [[
hello
world
what
are
your
name
]]
local t = {}
local i = 0
while true do
i = string.find(s, "\n", i + 1)
if i == nil then
break
end
print("当前i的值为:"..i)
table.insert(t,i)
end
for key, value in pairs(t) do
print("当前key:"..key..",当前value:"..value)
end
s = string.gsub("Lua is cute", "cute", "great")
print(s)
s = string.gsub("all lii", "l", "x")
print(s)
s = string.gsub("all lii", "l", "x", 1)
print(s)
s = string.gsub("all lii", "l", "x", 2)
print(s)
print(string.gsub("hello,up-down!", "%A", "."))
print(string.gsub("one ,and two ; and three", "%a+", "word"))
print(string.gsub("one ,and two ; and three", "%a*", "word"))
print(string.gsub("one ,and two ; and three", "%a-", "word"))
print(string.gsub("one ,and two ; and three", "%a?", "word"))
test = "int x; /* x */ int y; /* y */"
print(string.gsub(test, "/%*.*%/", "<COMMENT>"))
test = "int x; /* x */ int y; /* y */"
print(string.gsub(test, "/%*.%*/", "<COMMENT>"))
print(string.gsub("a (enclosed (in) parentheses) line", "%b()", ""))
print(string.gsub("a (enclosed (in) parentheses) line", "%b()", "tihuan"))
----------------------------------------捕获----------------------------------------------
---Capture 这样的机制: 可以使用模式来捕获字符串中的一部分
pair = "name = Anna"
i, j, key, value = string.find(pair, "(%a+)%s*=%s*(%a+)")
print(i, j, key, value)
s=[[then he said:"it's all right"!]]
a,b,c,quotedPart= string.find(s, [[(["'])(.-)%1]])
print(quotedPart)
print(c)
print(string.gsub("hello Lua", "(%a)", "%1-%1"))
print(string.gsub("hello Lua","(.)(.)" , "%2%1"))
s = "the /quote{task} is to /em{change} that."
print(string.gsub(s, "/(%a+){(.-)}", "<%1>%2</%1>"))
s = "sin(3) = $[math.sin(3)]; 2^5 = $[2^5]"
print((string.gsub(s, "$(%b[])", function(x)
print("截取内容为:"..x..",截取后内容"..string.sub(x, 2, -2))
x = "return " .. string.sub(x, 2, -2)
local f = loadstring(x)
return f()
end)))
输出结果为:
30
aaaa
sdfdsfdf
A??O
in brackets
in
a
cde
97
98
99
pi = 3.1416
05/11/1990
7 11
world
3 3
nil
当前i的值为:6
当前i的值为:12
当前i的值为:17
当前i的值为:21
当前i的值为:26
当前i的值为:31
当前key:1,当前value:6
当前key:2,当前value:12
当前key:3,当前value:17
当前key:4,当前value:21
当前key:5,当前value:26
当前key:6,当前value:31
Lua is great
axx xii
axl lii
axx lii
hello.up.down. 3
word ,word word ; word word 5
wordword word,wordword wordword word;word wordword wordword 13
wordowordnwordeword word,wordawordnworddword wordtwordwwordoword word;word wordawordnworddword wordtwordhwordrwordewordeword 25
wordwordwordword word,wordwordwordword wordwordwordword word;word wordwordwordword wordwordwordwordwordword 25
int x; <COMMENT> 1
int x; /* x */ int y; /* y */ 0
a line 1
a tihuan line 1
1 11 name Anna
it's all right
"
h-he-el-ll-lo-o L-Lu-ua-a 8
ehll ouLa 4
the <quote>task</quote> is to <em>change</em> that. 2
截取内容为:[math.sin(3)],截取后内容math.sin(3)
截取内容为:[2^5],截取后内容2^5
sin(3) = 0.14112000805987; 2^5 = 32