• 作成:

Haskellのregex-compatはUnicode文字に対応していないのでregex-compat-tdfaを使いましょう

タイトルにwbr要素を使ってカンマの後に改行を行ってもらうようにしました

titleWbr = field "title_wbr"
    (\item -> (\mTitle -> R.subRegex (R.mkRegex ",") (fromJust mTitle) ",<wbr>") <$>
        getMetadataField (itemIdentifier item) "title")

のように<wbr>をカンマの後に挿入するようにしたのですが, カンマの存在しない場所に何故かカンマが挿入されてしまったり, 一部の文字が削除されてしまっていることに気がつきました.

何故だろうと思い, 他の正規表現パッケージを見てみることにしました.

regex-compat-tdfa :: Stackage Serverによると,

regex-compat can't use Unicode characters correctly because of using regex-posix. This is not good for Unicode users.

と書いてあります.

regex-compatはUnicode文字を正しく処理できないようですね.

なので, 依存からregex-compatを削除して, regex-compat-tdfaを追加したら正しく処理されるようになりました.

探してみると同じように詰まっていた人が居たようですね. haskell-ja > Archives > 2015/05/04

regex-compatを使うのはやめましょう.