在flex中使用正则表达式[\ [\];]

时间:2009-11-17 13:08:37

标签: regex lexical-analysis

如果我在我的flex文件中有以下内容,它会做什么?

[\\[\\];]     { return yytext[0]; }

3 个答案:

答案 0 :(得分:2)

如果它在Perl中,它将匹配'[',']'或';'中的任何一个 - 我想它在flex中是一样的。 外部“[...]”定义了一个字符范围,即匹配任何一个指定字符:反斜杠转义内部“[]”,因此它们只是意味着字面括号。

答案 1 :(得分:1)

它匹配由其中一个字符[];组成的标记。 @AAT在他的解释中是正确的,虽然术语明智的“角色类”比“角色范围”更常见。

return yytext[0];返回匹配标记的第一个字符。由于此处的正则表达式仅匹配单个字符标记,因此它将匹配的标记本身作为字符返回。

答案 2 :(得分:0)

如果发现以下任何一个[];它返回yytext [0]