2

我使用 ragel 和 C 作为宿主语言。

我可以简单地用'\n'识别换行符,但我需要识别文件的开头作为替代。

在正则表达式的其他实现中,这可以由\Aor给出$,但$保留用于其他目的,'\A'映射到其他东西(警报?)并\A给出解析器错误。

4

2 回答 2

5

我不认为有一个转义序列。但是,您可以通过检查 Ragel 的ts变量是否等于 0 来检测它。

于 2012-06-13T14:33:43.770 回答
0

以文本格式您有 3 种选择:

  • 旧 mac 到 nr 9 \n\r(和 Commodore、Apple II、Microware OS-9)

  • Unices 和新的 Mac OS X \n(和 BeOS、AmigaOS、MorphOS、RISC OS、Multics)

  • Windows 使用\r\n(和 DOS、OS/2、Symbian、DEC RT-11)

在 Ragel 中定义行尾

endline = ( "\r" | "\n" )+ @{ increase_line_number; };

行的开始正在开始(any - endline)

于 2017-03-10T19:50:54.950 回答