在Flex中匹配精确单词以进行词法分析

时间:2014-07-01 18:11:37

标签: regex flex-lexer

我试图在Flex中匹配词汇分析的确切单词。具体来说,我正在寻找单词class,并尝试了这个正则表达式\bclass\b,它在rubular上工作正常。我已经尝试了给定here的示例但由于某种原因,Flex无法模拟rubular处的输出。你能解释一下原因吗?怎么做呢?

1 个答案:

答案 0 :(得分:1)

简单地说,因为flexflex而www.rubular.com是" Ruby 正则表达式编辑器" (引自主页,重点补充)。

Flex正则表达式语法在flex manual中进行了解释;如果你读到这个,你会看到flex解释\b和标准C一样;也就是说,作为退格字符。

了解Flex的工作原理非常重要(阅读介绍性指南非常有用,例如在手册中);总之,它连续匹配令牌,每个令牌都紧跟在前一个令牌之后。没有必要提供边界断言,因为之前的文本已经匹配到单词的开头,并且应该有一个明确的标记模式,它将匹配恰好以目标单词开头的较长单词。 s字母。例如,查看Wikipedia article中的示例。