用lex/flex匹配html样式的注释



我希望将COMMENT匹配为<!--C-->,因此:

  1. <!--
  2. 开头
  3. 开头 -->
  4. C -可以是任何东西(包括制表符,换行符等)

我在第一个-->结束时遇到了一个问题

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

有什么建议吗?

试试这个:

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

我知道读起来有点痛苦。翻译过来就是:

<!--后面接任意个数

  • 除破折号以外的任何字符,或者

  • 一个破折号后面跟除破折号以外的任何字符(包括>),或者

  • 两个或多个破折号,后跟除破折号或>以外的任何字符

,最后是两个或多个破折号,后跟>

最新更新