RE2是很大的。 快速和確定性。RE2和UTF16(或UCS-2)
但是,它僅支持UTF8。 我的字符串本身是UTF16,並且來回轉換會導致性能下降。
在RE2中實現原生UTF16能力有多困難?
多大的困難會是實現在本地RE2 UCS-2能力? (這應該更容易)
即一個普通程序員需要多少小時才能做到這一點。
這一直困擾我幾個星期,所以我想我會問!
RE2是很大的。 快速和確定性。RE2和UTF16(或UCS-2)
但是,它僅支持UTF8。 我的字符串本身是UTF16,並且來回轉換會導致性能下降。
在RE2中實現原生UTF16能力有多困難?
多大的困難會是實現在本地RE2 UCS-2能力? (這應該更容易)
即一個普通程序員需要多少小時才能做到這一點。
這一直困擾我幾個星期,所以我想我會問!
RE2的創建者Russ Cox很善良地發佈UCS-2支持的補丁。但是,某些斷言不適用於UCS-2。從拉斯回覆逐字:
嗨。在我開源之前,RE2有一個UCS-2模式,但它不支持像^,$和\ b這樣的斷言,這限制了它的效用。如果 你不需要那些操作員,那麼它可能適合你。 我不打算UCS-2模式重新添加到RE2的來源,但我確實只是 發佈爲刪除它的變化的差異。您應該能夠 在本地副本中反轉diff以獲得UCS-2支持。 該文件位於Mercurial存儲庫的根目錄中的ucs2.diff。
享受。
你問拉斯考克斯他有什麼看法可能是對回答你的問題?我敢打賭,設想它太長了。
我真的認爲你高估從醜陋的UTF-16轉換爲正常的UTF-8的成本,並低估了重新編碼高度調諧的庫的成本。
就硬着頭皮使用UTF-8次一樣我們休息。
我自己是一個很大的RE2粉絲,但是我從來沒有想過要在UTF-16上使用它。 UTF-16不是我的世界的一部分。就像任何其他傳統編碼一樣,我們在UTF-16中獲得的任何內容都會立即升級到UTF-8,以便整個工具鏈可以使用它,因爲我們運行純UTF8工具鏈。
也許你住在對面的世界?
嗨,事實上,我做到了,他很友善地在官方回購中發佈了UCS-2代碼!是的,我的一部分生活在Windows世界。見答案。 – MustafaM 2012-02-10 02:47:55
是您唯一真正的問題是 「如何困難/多久」?這很難回答,並且很大程度上取決於您稱之爲「常規程序員」的定義。 :) – deceze 2012-02-07 06:56:54
是的,我知道。如何'需要多長時間?'? – MustafaM 2012-02-07 08:05:46