我使用 ragel 和 C 作为宿主语言。
我可以简单地用'\n'识别换行符,但我需要识别文件的开头作为替代。
在正则表达式的其他实现中,这可以由\A
or给出$
,但$
保留用于其他目的,'\A'
映射到其他东西(警报?)并\A
给出解析器错误。
我使用 ragel 和 C 作为宿主语言。
我可以简单地用'\n'识别换行符,但我需要识别文件的开头作为替代。
在正则表达式的其他实现中,这可以由\A
or给出$
,但$
保留用于其他目的,'\A'
映射到其他东西(警报?)并\A
给出解析器错误。
我不认为有一个转义序列。但是,您可以通过检查 Ragel 的ts
变量是否等于 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)