我试图在Flex中匹配词汇分析的确切单词。具体来说,我正在寻找单词class
,并尝试了这个正则表达式\bclass\b
,它在rubular上工作正常。我已经尝试了给定here的示例但由于某种原因,Flex无法模拟rubular处的输出。你能解释一下原因吗?怎么做呢?
答案 0 :(得分:1)
简单地说,因为flex
是flex
而www.rubular.com是" Ruby 正则表达式编辑器" (引自主页,重点补充)。
Flex
正则表达式语法在flex manual中进行了解释;如果你读到这个,你会看到flex
解释\b
和标准C一样;也就是说,作为退格字符。
了解Flex的工作原理非常重要(阅读介绍性指南非常有用,例如在手册中);总之,它连续匹配令牌,每个令牌都紧跟在前一个令牌之后。没有必要提供边界断言,因为之前的文本已经匹配到单词的开头,并且应该有一个明确的标记模式,它将匹配恰好以目标单词开头的较长单词。 s字母。例如,查看Wikipedia article中的示例。