加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex规则段模式和正则表达式

发布时间:2020-12-15 04:56:09 所属栏目:百科 来源:网络整理
导读:flex规则段是用正则表达式说明的,另外也有他自己的一些格式: 1.语系对正则表达式的影响: 不同语系,字符的种类,数量,排序各不相同, LANG=C时:字母和数字的顺序是01234...ABCD...Zabc...z,[A-D]指从A,B,C,D中取一个字符。 LANG=zh_CN时:字母和数字的

flex规则段是用正则表达式说明的,另外也有他自己的一些格式:

1.语系对正则表达式的影响:

不同语系,字符的种类,数量,排序各不相同,

LANG=C时:字母和数字的顺序是01234...ABCD...Zabc...z,[A-D]指从A,B,C,D中取一个字符。

LANG=zh_CN时:字母和数字的顺序是01234...aAbBcCdD...zZ,[A-D]指从A,b,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{2,4},xx,xxx,xxxx匹配。

*:重复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,}:2个或多个X。

X{3}:3个前一字符,XXX。

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

{name}:类似一个变量,例NUMBER [0-9]+,则可在其他地方用{NAME}代表这个正则式。

"[xyz]"foo":“”表示字符串,类似上一节中的(),表示[xyz]"foo这个字串,字串的任何字符都失去特殊意义。

123:一个八进制值为123的字符。

x2a:一个十六进制值为2a的字符。

:一个空字符。

(?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 ):忽略()中的所有东西

<s>r:在开始条件s下匹配正则表达式r

<s1,s2,s3>r:在开始条件s1或s2或s3下匹配r

<*>r:任何开始条件下匹配r

<<EOF>>:文件尾

<s1,s2><<EOF>>:在开始条件s1或s2下的文件尾

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读