使用lex / flex匹配HTML样式的注释

时间:2013-03-19 17:18:31

标签: parsing lex flex-lexer lexical-analysis

我希望将评论与<!--C-->匹配为:

  1. <!--
  2. 开头
  3. 第一个 -->
  4. 结尾
  5. C - 可以是任何东西(包括标签,换行符等)
  6. 我遇到了以第一个-->

    结尾的问题

    因此显然这个解决方案不起作用:  COMMENT (\<!--((.|(\n))*)--\>)

    有什么建议吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

COMMENT    <!--([^-]|-[^-]|--+[^->])*-*-->

我知道这有点难以阅读。它转换为:

<!--后跟任意数量的:

  • 破折号以外的任何内容,或

  • 单个短划线后跟除短划线以外的任何内容(包括>)或

  • 两个或更多短划线,后跟短划线或>

  • 以外的任何其他内容

然后最后两个或多个短划线后跟>