字符串有数字,字母和下划线组成,用单引号‘ ’双引号“” 或者双中括号[[]]
转义字符 :/a /b /r // 等
字符串操作:
大小写转换 :string.upper(string1) string.lower(string2)
替换:string.gsub(mainstring,findstring,replacestring,num) 从mainstring中查找findstring,将其替换为replacestring,替换个数为num,默认为全部替换
查找:string.find(str,strsub,[init,end]) 在字符串str中的位置从init到end查找strsub字符串。返回其位置
字符串反转 :string.reverse(arg)
格式化输出:string.format(...) 如string.format("the value is:%d",4) 结果为 the value is:4
%c %d/i/o/u/x/X/e/f/F
(1) 符号: 一个+号表示其后的数字转义符将让正数显示正号. 默认情况下只有负数显示符号.
(2) 占位符: 一个0, 在后面指定了字串宽度时占位用. 不填时的默认占位符是空格.
(3) 对齐标识: 在指定了字串宽度时, 默认为右对齐, 增加-号可以改为左对齐.
(4) 宽度数值
(5) 小数位数/字串裁切: 在宽度数值后增加的小数部分n, 若后接f(浮点数转义符, 如%6.3f)则设定该浮点数的小数只保留n位, 若后接s(字符串转义符, 如%5.3s)则设定该字符串只显示前n位
转换字符与ascii码 :string.char(num1,num2,...)将整数转换为对应的字母,并且连起来组成字符串;如string.char(97,98) 结果ab
string.byte(arg,[int])对字符串arg的位置为int的字符转换为整数,默认int为开头,string.byte('ABCD')结果65
计算长度:string.len(arg)
拷贝:string.rep(string1,n) 返回字符串string1的n个拷贝
链接:..操作符 如a=‘qq’..‘bb’ 结果a=qqbb
查找:string.gmatch(str,pattern) 返回在str中查找符合pattern的子串,如果没找到,返回nil
匹配:string.match(str,pattern,init)返回从str中查找到为pattern的第一个位置,初始查找位置init,默认为1;
匹配模式:
单个字符(除 ^$()%.[]*+-? 外): 与该字符自身配对
.(点): 与任何字符配对
%a: 与任何字母配对
%c: 与任何控制符配对(例如\n)
%d: 与任何数字配对
%l: 与任何小写字母配对
%p: 与任何标点(punctuation)配对
%s: 与空白字符配对
%u: 与任何大写字母配对
%w: 与任何字母/数字配对
%x: 与任何十六进制数配对
%z: 与任何代表0的字符配对
%x(此处x是非字母非数字字符): 与字符x配对. 主要用来处理表达式中有功能的字符(^$()%.[]*+-?)的配对问题, 例如%%与%配对
[数个字符类]: 与任何[]中包含的字符类配对. 例如[%w_]与任何字母/数字, 或下划线符号(_)配对
[^数个字符类]: 与任何不包含在[]中的字符类配对. 例如[^%s]与任何非空白字符配对
当上述的字符类用大写书写时, 表示与非此字符类的任何字符配对. 例如, %S表示与任何非空白字符配对。
模式条目可以是:
单个字符类匹配该类别中任意单个字符;
单个字符类跟一个 '*
', 将匹配零或多个该类的字符。 这个条目总是匹配尽可能长的串;
单个字符类跟一个 '+
', 将匹配一或更多个该类的字符。 这个条目总是匹配尽可能长的串;
单个字符类跟一个 '-
', 将匹配零或更多个该类的字符。 和 '*
' 不同, 这个条目总是匹配尽可能短的串;
单个字符类跟一个 '?
', 将匹配零或一个该类的字符。 只要有可能,它会匹配一个;
%n
, 这里的 n 可以从 1 到 9; 这个条目匹配一个等于 n 号捕获物(后面有描述)的子串。
%bxy
, 这里的 x 和 y 是两个明确的字符; 这个条目匹配以 x 开始 y 结束, 且其中 x 和 y 保持 平衡 的字符串。 意思是,如果从左到右读这个字符串,对每次读到一个 x 就 +1 ,读到一个 y 就 -1, 最终结束处的那个 y 是第一个记数到 0 的 y。 举个例子,条目 %b()
可以匹配到括号平衡的表达式。
%f[set]
, 指 边境模式; 这个条目会匹配到一个位于 set 内某个字符之前的一个空串, 且这个位置的前一个字符不属于 set 。 集合 set 的含义如前面所述。 匹配出的那个空串之开始和结束点的计算就看成该处有个字符 '\0
' 一样。