对于可以计算源文件的算法,需要使用特定描述(不会被类似正则表达式等过于模糊的描述)混合换行符:使用“混合换行符类型”对行数进行计数的算法
'\r', '\n', '\r\n', '\n\r'
我目前有以下算法。是否可以?:
我确保始终处于第一个换行字符的“边界”。
在那个事件中,我比较当前的字节字符。
3.1。如果它是'\ n',我把它算作结束当前行并开始一个新行。
3.2。如果它是'\ r',我读下一个字符(如果不超过文本缓冲区的限制),看看它是否是'\ n'。如果是,我把它算作'\ r \ n'换行符。
3.3。如果它是'\ r',并且下一个字符不是'\ n',我把它算作'\ r'生成的换行符;将当前行标记为结束并将其计为新行的开始。
如果它是有用的,我需要它来尝试生产对整个Web浏览器粘贴源文件,这些文件拷贝/更大的“便携性”,和/或具有不同类型的换行符的几个文件追加,并且我有解析工具,我想确保在所有情况下都具有正确和强大的行为。
如果你的问题是“这个算法好吗?”,那么是的,这是完全合理的,也是攻击这个问题最直接的方法(IMO)。 – prelic 2012-04-11 20:29:43
你真的应该学习一个正则表达式是什么。你刚刚做的是将正则表达式“编译”为有限状态机。 – 2012-04-11 20:30:13
@KristopherMicinski - 因为他表示他不想使用RE来实现这种方法,所以假设他知道RE是什么是合理的,并且正在选择(或者某人正在为他选择)而不使用它们。 – prelic 2012-04-11 20:31:29