Lun*_*irl 10 regex unix flex-lexer
我在Unix上使用Flex制作词法分析器.如果你曾经使用过它,那么在你知道你主要只是为你正在编写Lexical Analyzer的任何语言的标记定义正则表达式时.我被困在最后一部分.我需要正确的Regex用于多行注释,允许类似的东西
/* This is a comment \*/
Run Code Online (Sandbox Code Playgroud)
但也允许
/* This **** //// is another type of comment */
Run Code Online (Sandbox Code Playgroud)
有人能帮忙吗?
Don*_*ows 15
您不能将C样式注释与Flex中的简单正则表达式匹配; 它们需要基于起始状态的更复杂的匹配方法.在Flex的常见问题解答说,如何(当然,他们为做/*...*/
形式;在刚刚处理其他形式的<INITIAL>
状态应该是简单).
但是,如果您需要使用正则表达式,那么确实存在一个不太复杂的解决方案: