flex規則段模式和正規表示式

2021-06-07 12:57:23 字數 1870 閱讀 7128

flex規則段是用正規表示式說明的,另外也有他自己的一些格式:

1.語系對正規表示式的影響:

不同語系,字元的種類,數量,排序各不相同,

lang=c時:字母和數字的順序是01234...abcd...zabc...z,[a-d]指從a,b,c,d中取乙個字元。

lang=zh_cn時:字母和數字的順序是01234...aabbccdd...zz,[a-d]指從a,b,b,c,c,d,d中取乙個字元。

2.正規表示式字元

^x:以x開頭的一整行。

x&:以x結尾的一整行。

.:除換行符外的任一字元。

\:轉義,去除特殊符號的特殊意義。

[list]:從字符集中取任意乙個字元,例:[abc]表示從abc中取任意乙個,[abe-h]表示取a或b或e到h中任意乙個。中,有些情況下特殊符號會失去特殊意義,如[-abc],-在最前或最後都會失去連字的意義,[a|c]中,|失去『或』的意義而變成乙個普通字元,[a^b]中^失去非的意義。

[n1-n2]:[a-g]表示從a到g中取任一乙個字元,注意語系影響。

[^list]:與[n1-n2]相反,取list中不包含的乙個字元。

\[n,m\]:連續n到m個前一字元,例x\,xx,***,***x匹配。

*:重複0個或多個前面的字元。

+:重複乙個或多個前面的字元;例如o+,o,oo,ooo等匹配。

?:0次或1次出現前面的字元,例o?,o,oo匹配。

|:或,例x|y,x或y。

():字串,例(xyz),僅xyz字串匹配。

(|):字串之前的或,例(abc|xyz),兩字串abc,xyz中任意乙個匹配。

()+:字串重複出現到少一次,例(xyz),xyz,xyzxyz,xyzxyzxyz...匹配

...3.正規表示式舉例

x:匹配乙個x字元。

x:2個或多個x。

x:3個前一字元,***。

4.flex,lex中的一些匹配模式。

:類似乙個變數,例number [0-9]+,則可在其他地方用代表這個正則式。

\123:乙個八進位制值為123的字元。

\x2a:乙個十六進製制值為2a的字元。

\0:乙個空字元。

(?option:pattern):option可選i,s,x中的0個或多個,也可選-i,-s,。i表示大寫敏感,-i表示大小寫不敏感,s僅用於改變.的含義為任一字元,-s則指明.的含義為除換行外的任一字元。x表示忽略pattern中的注釋和空白,除非空白前有轉義符\或空白在或""中。

(?:foo)         same as  (foo)

(?i:ab7)        same as  ([aa][bb]7)

(?-i:ab)        same as  (ab)

(?s:.)          same as  [\x00-\xff]

(?-s:.)         same as  [^\n]

(?ix-s: a . b)  same as  ([aa][^\n][bb])

(?x:a  b)       same as  ("ab")

(?x:a\ b)       same as  ("a b")

(?x:a" "b)      same as  ("a b")

(?x:a[ ]b)      same as  ("a b")

(?x:         a/* comment */bc)          same as  (abc)

(?# comment ):忽略()中的所有東西

r:在開始條件s下匹配正規表示式r

r:在開始條件s1或s2或s3下匹配r

<*>r:任何開始條件下匹配r

<>:檔案尾

<>:在開始條件s1或s2下的檔案尾

flex正規表示式

驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 驗證有1 3位小數的正實數 0 9 0 9 驗證非零的正整數 1 9 0 9 驗證非零的負整數 1 9 0 9 驗證非負整數 正整數...

Flex 正規表示式

1.基本語法 匹配除換行符 n 外的任意單個字元。匹配前面flex正規表示式的零次或多次出現。eg alert.show thisbookisgoodboooookboxbx.replace bo g,coo thiscookisgoodcookcooxcoox 匹配前面flex正規表示式的一次或多...

flex正規表示式

正規表示式是一種通用的標準,大部分計算機語言都支援正規表示式,包括as3,這裡收集了一些常用的正規表示式語句,大家用到的時候就不用自己寫了 d 匹配非負整數 正整數 0 0 9 1 9 0 9 匹配正整數 d 0 匹配非正整數 負整數 0 0 9 1 9 0 9 匹配負整數 d 匹配整數 d d 匹...