RE2 и UTF16 (или UCS-2) - PullRequest
       32

RE2 и UTF16 (или UCS-2)

4 голосов
/ 07 февраля 2012

RE2 отлично. Быстрый и детерминированный.

Однако он поддерживает только UTF8. Мои строки изначально имеют формат UTF16 , и преобразование туда-сюда снизит производительность.

Насколько трудно будет реализовать встроенную возможность UTF16 в RE2?

Насколько сложно было бы реализовать встроенную возможность UCS-2 в RE2?(это должно быть проще)

т.е. сколько часов потребуется обычному программисту для этого.

Это беспокоило меня в течение нескольких недель, поэтому ядумал, что спросит!

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

Russ Cox, создатель RE2, любезно опубликовал патч для поддержки UCS-2.Некоторые утверждения, однако, не поддерживаются для UCS-2.Ответ от Руси дословно выложен:

Привет.RE2 имел режим UCS-2 до того, как я открыл его, но он не мог поддерживать утверждения типа ^, $ и \ b, что ограничивало его полезность.Если вам не нужны эти операторы, то это, вероятно, будет работать для вас.Я не планирую повторно добавлять режим UCS-2 к источникам RE2, но я просто опубликовал diff для изменений, которые удалили его.Вы должны быть в состоянии полностью изменить diff в локальной копии, чтобы получить поддержку UCS-2.Файл ucs2.diff находится в корне репозитория Mercurial.

Наслаждайтесь.

Ссылка на код: http://code.google.com/p/re2/source/list

1 голос
/ 09 февраля 2012

Вы спрашивали Расса Кокса, каково его мнение относительно ответа на ваш вопрос?Бьюсь об заклад, это слишком долго для размышлений.

Я действительно думаю, что вы переоцениваете стоимость преобразования из уродливого UTF-16 в обычный UTF-8 и недооцениваете стоимость перекодирования очень хорошо настроенной библиотеки.

Просто прикуси пулю и используй UTF-8, как и все остальные.

Я сам большой фанат RE2, но мне никогда не приходило в голову использовать его на UTF-16.UTF-16 просто не часть моего мира.Как и любая другая устаревшая кодировка, все, что мы получаем в UTF-16, немедленно обновляется до UTF-8, чтобы с ним могла работать вся цепочка инструментов, потому что мы запускаем цепочку инструментов из чистого UTF8.

Возможно, вы живете впротивоположный мир?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...