flex 正则表达式中的空白

blank in regular expression in flex

我在 flex 文件中有以下正则表达式。 (.l 文件)

  doctype [[:blank:] \r\n]*<!DOCTYPE[^\[]*\[[[:blank:] \r\n]*

在 flex 教程的 pattern 章节中,我看到 flex defines ‘[:blank:]’ as a blank or a tab.
但是在上面的表达式中,为什么我们需要在 [:blank:] 之后添加一个空格?

[:blank:] POSIX 字符 class 匹配 space 或制表符(即使在 FLEX patterns manual 中)。

因此,[[:blank:] \r\n]字符class等于[[:blank:]\r\n]

[rr] 相同 = [r]