lua中的正規表示式

2021-07-13 19:13:41 字數 812 閱讀 5633

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是...