2012-02-07 10 views
4

RE2は素晴らしいです。 ファストと確定性。RE2とUTF16(またはUCS-2)

ただし、UTF8のみをサポートしています。 私の文字列はネイティブにUTF16です。前後に変換するとパフォーマンスが低下します。

RE2でネイティブUTF16の機能を実装することはどれほど難しいでしょうか?

RE2でネイティブのUCS-2の機能を実装するのはどれほど難しいでしょうか? (これはより簡単になるはずです)

つまり、通常のプログラマがこれを行う必要があります。

これは数週間私を悩ませているので、私は尋ねると思った!

+1

が唯一の本当の問題 "いかに難しいか/どのくらい" ですか?それは答えが難しく、あなたが「普通のプログラマー」と呼ぶものの定義に多く依存しています。 :) – deceze

+0

はい、私は知っています。どのくらいの時間がかかりますか? – MustafaM

答えて

5

RE2の作成者であるRuss Coxは、UCS-2サポート用のパッチを公開するのに十分親切でした。ただし、UCS-2では一部のアサーションはサポートされていません。ラスからの返信はそのまま返信されます:

こんにちは。 RE2はソースを開く前にUCS-2モードを持っていましたが、 はそのユーティリティを制限する^、$、および\ bのようなアサーションをサポートできませんでした。 これらの演算子が必要ない場合は、おそらくあなたのために働くでしょう。 RE2ソースにUCS-2モードを再追加するつもりはありませんが、それを削除した変更のために だけを公開しました。 は、UCS-2サポートを元に戻すために、ローカルコピーの差分を取り消すことができます。 ファイルはMercurialリポジトリのルートにあるucs2.diffです。

お楽しみください。コードへ

リンク:http://code.google.com/p/re2/source/list

1

あなたはラス・コックスにあなたの質問に対する答えについての質問をしたでしょうか?私は熟考するのがずっと長いと確信しています。

醜いUTF-16から通常のUTF-8に変換するコストを過大評価し、非常に高度に調整されたライブラリを記録するコストを過小評価していると思います。

私たちの残りの部分のようにUTF-8を使用してください。

私は大きなRE2ファンですが、UTF-16で使用したいとは思いませんでした。 UTF-16は私の世界の一部ではありません。他のレガシーエンコーディングと同様に、UTF-16で取得したものはすぐにUTF-8にアップグレードされ、純粋なUTF8ツールチェーンを実行するため、ツールチェーン全体がそのまま使用できます。

おそらくあなたは反対の世界に住んでいますか?

+0

こんにちは、私がやったことは、公式レポにUCS-2コードを掲載するのに十分親切でした!はい、私の一部はWindowsの世界に住んでいます。答えを参照してください。 – MustafaM

関連する問題