對於可以計算源文件的算法,需要使用特定描述(不會被類似正則表達式等過於模糊的描述)混合換行符:使用「混合換行符類型」對行數進行計數的算法
'\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