1:Lua語言中模式使用百分號(hào)作為轉(zhuǎn)義符(類似于正則表達(dá)式)
%@:匹配所有的字母
%.:匹配一個(gè)點(diǎn)
%c:匹配控制字符
%d:匹配數(shù)字
%g:匹配除空格外的可打印字符
%l:匹配小寫字母
%p:匹配標(biāo)點(diǎn)符號(hào)
%s:匹配空白字符
%u:匹配大寫字母
%w:匹配字母和數(shù)字
%x:匹配16進(jìn)制數(shù)字
字符分類:模式中能夠與一個(gè)特定集合中的任意字符相匹配的一項(xiàng)
“%d%d/%d%d/%d%d%d%d”來匹配dd/mm/yyyy格式的日期
2:可以使用字符集來創(chuàng)建自定義的字符分類,只需要在方括號(hào)內(nèi)將單個(gè)字符和字符分類的組合起來即可,
[%w_]:匹配所有以下劃線結(jié)尾的字母和數(shù)字
[01]:匹配二進(jìn)制數(shù)字
[%[%]]:匹配方括號(hào)
3:在字符集前加一個(gè)補(bǔ)字符^就可以的帶這個(gè)字符集對(duì)應(yīng)的補(bǔ)集
模式[^0-7]代表所有八進(jìn)制數(shù)字以外的字符
模式[^\n]代表除換行符以外的其他字符
修飾符:
+ 重復(fù)一次或多次
* 重復(fù)零次或多次
- 重復(fù)零次或多次(最小匹配)
粘我?可選(出現(xiàn)零次或一次)
修飾符 + 匹配原始字符分類中的一個(gè)或多個(gè)字符怎燥,它總是獲取與模式相匹配的最長(zhǎng)序列操灿,例如模式“%a+”代表一個(gè)或多個(gè)字母(單詞)
local str = "one,and two;and three"
print("替換字符串后為:",string.gsub(str, "%a+","word"))
local str1 = "the number 1298 is even"
print("匹配后的字符串為:",string.match(str1,"%d+"))
輸出結(jié)果為:
[LUA-print] 替換字符串后為: word , word word;word word 5
[LUA-print] 匹配后的字符串為: 1298
修飾符 * 類似于修飾符 + 俯画,但是它還接受對(duì)應(yīng)字符分類出現(xiàn)零次的情況
修飾符 — 和修飾符*類似排抬,也是用于匹配字符分類的零次或多次出現(xiàn)栈拖,不過跟修飾符 * 總是能匹配的最長(zhǎng)序列不同连舍,修飾符 - 只會(huì)匹配最短序列