Lua字符串

字符串

字符串或串(string)是由數(shù)字、字母改淑、下劃線組成的一串字符
有三種方式表達(dá):

單引號的一串字符 ?? string1 = 'Lua'
雙引號間一串字符 ?? string1 = "Lua"
[[和]]間一串字符 ?? string = [["Lua"]]

轉(zhuǎn)義字符

轉(zhuǎn)義字符    含義                                                      ASCII碼值(10進(jìn)制)
\a               響鈴(BEL)                                             007
\b               退格(BS),將當(dāng)前位置移到前一列          008
\f                換頁(FF),將當(dāng)前位置移到下頁開頭       012
\n               換行(LF),將當(dāng)前位置移到下一行開頭    010
\r                回車(CR),將當(dāng)前位置移到本行開頭      013
\t                水平指標(biāo)(HT),(調(diào)用下一個TAB位置)     009
\v               垂直指標(biāo)(VT)                                         011   
\\                反斜杠字符"\"                                         092
\'                單引號                                                    039
\"                雙引號                                                   034
\0               空字符(NULL)                                        000
\ddd           1到3位八進(jìn)制數(shù)所代表的任意字符        三為八進(jìn)制
\xhh           1到2位十六進(jìn)制所代表的任意字符         二為十六進(jìn)制

字符串操作

--API
string.upper(argument):           字符串全部轉(zhuǎn)為大寫字母
string.lower(argument):            字符串全部轉(zhuǎn)為小寫字母
string.gsub(main String,find String,replace String,num)  
在字符串中替換,mainString為要替換的字符串,find String 為被替換的字符,replace String 要替換的字符,num替換次數(shù)(可以忽略,則全部替換)
string.find(str,substr,[init,[end]])      在指定的目標(biāo)字符串中搜索指定的內(nèi)容(第三參數(shù)為索引),返回其具體位置,不存在則返回nil
string.reverse(arg)                    字符串倒序
string.format(...)                        類似print格式化字符串
string.char(arg)和string.byte(arg[,int])        char 將整型數(shù)字轉(zhuǎn)成字符并連接,byte轉(zhuǎn)換字符為整數(shù)值(可以指定某一個字符,默認(rèn)第一個)
string.len("String")                    計算字符串長度
string.rep("String",n)                 返回字符串string的n的拷貝
..                                               連接連個字符串
string.gmatch(str,pattern)         回一個迭代函數(shù),每一調(diào)用這個函數(shù),返回一個字符串str找到的下一個符合pattern 描述的子串.如果參數(shù)pattern沒有找到,返回nuil
string.match(str,pattern,init)      只尋找源子串str中的第一個配對,參數(shù)init可選,指定搜尋起點(diǎn),默認(rèn)為1
成功配對到,返回所有配對結(jié)果;如果沒有設(shè)置捕獲標(biāo)記,則返回真?zhèn)€配對字符串,沒有成功返回nil.

字符串格式化

%c       接受一個數(shù)字,轉(zhuǎn)化為ASCII碼
%d,%i  接受一個數(shù)字并將其轉(zhuǎn)化為有符號的整數(shù)格式
%o       接受一個數(shù)字并將其轉(zhuǎn)換為八進(jìn)制的格式
%u       接受一個數(shù)字并將其轉(zhuǎn)化為無符整數(shù)格式
%x       接受一個數(shù)字并將其轉(zhuǎn)化為十六進(jìn)制的格式,使用小寫字母
%X       接受一個數(shù)字并將其轉(zhuǎn)化為十六進(jìn)制的格式,使用大寫字母
%e       接受一個數(shù)字并將其轉(zhuǎn)化為科學(xué)記數(shù)法格式,使用小寫e
%E       接受一個數(shù)字并將其轉(zhuǎn)化為科學(xué)記數(shù)法格式,使用大寫E
%f       接受一個數(shù)字并將其轉(zhuǎn)化為浮點(diǎn)數(shù)格式
%g(%G) 接受一個數(shù)字并將其轉(zhuǎn)化為%e(%E,對應(yīng)的%G)及%f中較短的一種格式
%q       接受一個數(shù)字符串并將其轉(zhuǎn)化為可安全被lua編譯讀入的格式
%s        接受一個字符串并按照給定的參數(shù)格式化該字符串
--細(xì)化格式,參數(shù)如下順序讀入
1):符號:一個+號表示其后的數(shù)字轉(zhuǎn)義符將證書顯示正好,默認(rèn)情況下有負(fù)數(shù)顯示符號
2)占位符:一個0在后面指定了子串寬度啊是占位用,不填是默認(rèn)站位符是空格
3)寬度數(shù)值
4)小數(shù)位/字符串才裁剪:在寬度數(shù)值后增減的小數(shù)部分n,若后接著f(浮點(diǎn)數(shù)轉(zhuǎn)義符,如%6.3f)則設(shè)定該浮點(diǎn)數(shù)的小數(shù)只保留n位,若后接s(字符轉(zhuǎn)義,如%5.3s)則設(shè)定該字符串只顯示前n位

匹配模式

lua中匹配模式直接用常規(guī)的字符串來描述.用于模式匹配函數(shù) string.find, string.gmatch, string.gsub, string.match亮蛔。

單個字符(除 ^$()%.[]*+-? 外): 與該字符自身配對
.(點(diǎn)): 與任何字符配對
%a: 與任何字母配對
%c: 與任何控制符配對(例如\n)
%d: 與任何數(shù)字配對
%l: 與任何小寫字母配對
%p: 與任何標(biāo)點(diǎn)(punctuation)配對
%s: 與空白字符配對
%u: 與任何大寫字母配對
%w: 與任何字母/數(shù)字配對
%x: 與任何十六進(jìn)制數(shù)配對
%z: 與任何代表0的字符配對
%x(此處x是非字母非數(shù)字字符): 與字符x配對. 主要用來處理表達(dá)式中有功能的字符(^$()%.[]*+-?)的配對問題, 例如%%與%配對
[數(shù)個字符類]: 與任何[]中包含的字符類配對. 例如[%w_]與任何字母/數(shù)字, 或下劃線符號(_)配對
[^數(shù)個字符類]: 與任何不包含在[]中的字符類配對. 例如[^%s]與任何非空白字符配對
當(dāng)上述的字符類用大寫書寫時, 表示與非此字符類的任何字符配對. 例如, %S表示與任何非空白字符配對
'%%' 匹配字符 '%'


模式條目可以是:

單個字符類匹配該類別中任意單個字符痴施;
單個字符類跟一個 '*', 將匹配零或多個該類的字符究流。 這個條目總是匹配盡可能長的串辣吃;
單個字符類跟一個 '+', 將匹配一或更多個該類的字符芬探。 這個條目總是匹配盡可能長的串神得;
單個字符類跟一個 '-', 將匹配零或更多個該類的字符偷仿。 和 '*' 不同哩簿, 這個條目總是匹配盡可能短的串;
單個字符類跟一個 '?'酝静, 將匹配零或一個該類的字符节榜。 只要有可能,它會匹配一個形入;
%n全跨, 這里的 n 可以從 1 到 9; 這個條目匹配一個等于 n 號捕獲物(后面有描述)的子串亿遂。
%bxy浓若, 這里的 x 和 y 是兩個明確的字符; 這個條目匹配以 x 開始 y 結(jié)束蛇数, 且其中 x 和 y 保持 平衡 的字符串挪钓。 意思是,如果從左到右讀這個字符串耳舅,對每次讀到一個 x 就 +1 碌上,讀到一個 y 就 -1, 最終結(jié)束處的那個 y 是第一個記數(shù)到 0 的 y浦徊。 舉個例子馏予,條目 %b() 可以匹配到括號平衡的表達(dá)式。
%f[set]盔性, 指 邊境模式霞丧; 這個條目會匹配到一個位于 set 內(nèi)某個字符之前的一個空串, 且這個位置的前一個字符不屬于 set 冕香。 集合 set 的含義如前面所述蛹尝。 匹配出的那個空串之開始和結(jié)束點(diǎn)的計算就看成該處有個字符 '\0' 一樣后豫。

模式:

模式 指一個模式條目的序列。 在模式最前面加上符號 '^' 將錨定從字符串的開始處做匹配突那。 在模式最后面加上符號 '$' 將使匹配過程錨定到字符串的結(jié)尾挫酿。 如果 '^' 和 '$' 出現(xiàn)在其它位置,它們均沒有特殊含義愕难,只表示自身早龟。

捕獲:

模式可以在內(nèi)部用小括號括起一個子模式; 這些子模式被稱為 捕獲物务漩。 當(dāng)匹配成功時拄衰,由 捕獲物 匹配到的字符串中的子串被保存起來用于未來的用途。 捕獲物以它們左括號的次序來編號饵骨。
作為一個特例翘悉,空的捕獲 () 將捕獲到當(dāng)前字符串的位置(它是一個數(shù)字)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末居触,一起剝皮案震驚了整個濱河市妖混,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轮洋,老刑警劉巖制市,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異弊予,居然都是意外死亡祥楣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門汉柒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來误褪,“玉大人,你說我怎么就攤上這事碾褂∈藜洌” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵正塌,是天一觀的道長嘀略。 經(jīng)常有香客問我,道長乓诽,這世上最難降的妖魔是什么帜羊? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮鸠天,結(jié)果婚禮上逮壁,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好窥淆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巍杈,像睡著了一般忧饭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筷畦,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天词裤,我揣著相機(jī)與錄音,去河邊找鬼鳖宾。 笑死吼砂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鼎文。 我是一名探鬼主播渔肩,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拇惋!你這毒婦竟也來了周偎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤撑帖,失蹤者是張志新(化名)和其女友劉穎蓉坎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胡嘿,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛉艾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衷敌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勿侯。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖逢享,靈堂內(nèi)的尸體忽然破棺而出罐监,到底是詐尸還是另有隱情,我是刑警寧澤瞒爬,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布弓柱,位于F島的核電站,受9級特大地震影響侧但,放射性物質(zhì)發(fā)生泄漏矢空。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一禀横、第九天 我趴在偏房一處隱蔽的房頂上張望屁药。 院中可真熱鬧,春花似錦柏锄、人聲如沸酿箭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缭嫡。三九已至缔御,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妇蛀,已是汗流浹背耕突。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留评架,地道東北人眷茁。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像纵诞,于是被迫代替她去往敵國和親上祈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 字符串或串(String)是由數(shù)字挣磨、字母雇逞、下劃線組成的一串字符。 Lua 語言中字符串可以使用以下三種方式來表示:...
    誰說我是小小云閱讀 386評論 0 0
  • 字符串或串(String)是由數(shù)字茁裙、字母塘砸、下劃線組成的一串字符。 Lua 語言中字符串可以使用以下三種方式來表示:...
    誰說我是小小云閱讀 577評論 0 0
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,763評論 0 38
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識矾瘾,c語言女轿,java語言,單片機(jī)的匯編語言等壕翩;大學(xué)畢...
    oceanfive閱讀 3,048評論 0 7
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,370評論 0 5