当前位置: 代码迷 >> 综合 >> flex规则段模式和正则表达式
  详细解决方案

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

热度:16   发布时间:2024-01-21 01:00:06.0

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\{2,4\},xx,xxx,xxxx匹配。

*:重复0个或多个前面的字符。

+:重复一个或多个前面的字符;例如o+,o,oo,ooo等匹配。

  相关解决方案