感叹号是什么意思

what does Exclamation mark mean?

我正在阅读一些 flex file for a dialect of datalog, the original file is ol_lexer.lex 操作部分有一个代码片段:

<INITIAL>%%.*           ; // Ignore %% comments
<INITIAL>^#!.*          ; // Ignore '#' directives

我知道匹配预处理指令的第二行,例如

#define PI 3.14

但是我不知道标记“!”是什么意思在这里,或者为什么第二个模式需要感叹号?

第二行忽略以 #! 开头的行(因此它不会匹配 #define ...,因为它在 # 之后没有 !)。 ! 在这里没有任何特殊含义 - 它只是匹配一个感叹号。

我假设此规则的目的是允许 shebang 行(例如 #!/usr/bin/env myinterpreter)。