lua中的正規表示式與posix的正規表示式有一些區別。產生區別的主要原因在於lua追求與標準庫的短小精悍,而完成完整的posix正則需要4000行以上的**。lua不願意為此犧牲簡介性,所以在正則的規則上有所妥協。
下表列出lu支援的所有字元類
字元類說明
.任意字元
%a字母
%c控制字元
%d數字
%l小寫字母
%p標點字元
%s空白字元
%u大寫字母
%w字母和數字
%x十六進製制數字
%z代表0的字元
此外,將上述字元類中的字母大寫,則表示其補集。
( ) . % + - * ? [ ] ^ $
這些字元與標準的正則中的作用相同,需要注意的是-
這個字元,作用與*
相同,都匹配前乙個字元0或多次出現。
與標準正則不同的是,lua中的修飾符不能用字元類;不能將模式分組然後使用修飾符作用這個分組。比如,沒有乙個模式可以匹配乙個可選的單詞(除非這個單詞只有乙個字母)。
%b
用來匹配對稱的字元.常寫為%bxy
,x和y是任意兩個不同的字元;x作為匹配的開始,y作為匹配的結束。比如,%b()
匹配以(
開始, 以)
結束的字串。
常用的這種模式有:%b()
,%b%[%]
,%b{}
,和%b<>
。你也可以使用任何字元作為分隔符。
Lua正規表示式
正規表示式作為一種通用的算式,大量用於文字處理邏輯中,其主要好處是速度能夠達到極致,而且 量通常會非常少,本篇主要介紹lua中的正則使用,由於這樣的文章網上隨處都可以搜到,而且不乏整理的不錯的,這裡就不想再重新做這件事情。正規表示式主要處理匹配問題,即通過給定語義萬用字元串,返回匹配成功的字串列表。...
lua正規表示式
一樣,都匹配乙個字元的0次或多次出現,但是他進行的是最短匹配。某些時候這兩個用起來沒有區別,但有些時候結果將截然不同。比如,如果你使用模式 a w 來查詢標示符,你將只能找到第乙個字母,因為 w 永遠匹配空。另一方面,假定你想查詢c程式中的注釋,很多人可能使用 也就是說 後面跟著任意多個字元,然後跟...
lua 正規表示式
點 與任何字元配對 a 與任何字母配對 c 與任何控制符配對 例如 n d 與任何數字配對 l 與任何小寫字母配對 p 與任何標點 punctuation 配對 s 與空白字元配對 u 與任何大寫字母配對 w 與任何字母 數字配對 x 與任何十六進製制數配對 z 與任何代表0的字元配對 x 此處x是...