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