字符串有數字,字母和下劃線組成,用單引號‘ ’雙引號“” 或者雙中括號[[]]
轉義字符 :/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
' 一樣。