1 件の投稿を表示中 (合計 4 個)
  • 作成者
    投稿
  • #22114
    redakt55
    参加者

    正規表現エンジンを二つ積んで,オプションで選べるようにするというのは難しいでしょうか。
    ぜひ鬼雲(Onigmo)も採用していただきたく。
    https://github.com/k-takata/Onigmo/blob/master/doc/RE.ja

    現行の Boost.Regex は実績のある優れたエンジンだとは思いますが,Unicode の一般カテゴリー(General Category)プロパティーによる文字クラスが十分でありません。
    具体的に言うと,漢字とか仮名を表す文字クラスがプロパティー名で書けないのです。
    仮名はともかく,すべての漢字を含む文字クラスを書くのが難しいのはご存じと思います。
    「漢字のあとの○○」といった正規表現が簡単に書けないのは,日本のユーザーにとって致命的にダメです。
    もちろん世界のユーザーにとっても,ギリシャ文字,キリル文字,アラビア文字,ハングルといった文字クラスが使えないのは大きな disadvantage です。

    また,プロパティーを用いた文字クラスが [ ] の中に書けないのも実用上とても困ります。

    鬼雲ならこれらがすべて解決します。
    漢字は \p{Han} と書けるし,平仮名および片仮名なら [\p{Hiragana}\p{Katakana}] と [ ] の中に入れて書けます。
    文字クラスの積演算が && でできるので,ASCII に含まれないラテン文字なら [\p{Latin}&&[^\p{ASCII}]] と書けます。
    田中哲スペシャルと呼ばれる非常に強力な道具も使えます。
    http://d.hatena.ne.jp/atzy/20080910/p1

    鬼雲(やそのフォーク元の鬼車)は Ruby,PHP などのプログラミング言語や,Mac のほとんどのテキストエディター,Windows ではサクラエディタが採用していますし,秀丸はエンジンを鬼雲版に差し替えることができます。実績も十分だと思います。

    ぜひとも前向きにご検討ください。

    #22119
    Yutaka Emura
    キーマスター

    redakt55 様

    いつもお世話になっております。江村です。

    これについては検討させていただきます。別途書いたように、ICU 対応すれば、Boost.Regex でも Unicode 対応が強化できると思います。また、今後は、C++ スタンダード ライブラリの Regex が標準的になってくるのではないかと思います。しかし、鬼雲(やそのフォーク元の鬼車)にも興味があります。さらに、ご意見がありましたらお知らせください。

    よろしくお願い申し上げます。

    #22127
    redakt55
    参加者

    ICU 対応すれば,
    Character classes that are supported by Unicode Regular Expressions
    http://www.boost.org/doc/libs/1_57_0/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
    が使えるようになるだけでなく,Han やKatakana とかも使えるようになるってことでしょうか?
    とにかく漢字,両仮名などの文字クラスはどうしても欲しいです。
    このあたりが貧弱なために,いちいち Ruby スクリプト書いたりしてます。

    速度面はどうでしょうか。
    最近の信頼できそうなベンチマークが見つけられませんでしたが,古いウェブページで Boost.Regex より鬼車(当時は鬼雲は無かった)のほうがかなり速いという情報もありました。
    それから何年も経ってるので今は分りませんが。
    もし鬼雲のほうが確かに速いとなれば,巨大テキストの処理速度を重視する EmEditor にとって有利に働きますね。

    鬼雲の技術面については,『正規表現技術入門―最新エンジン実装と理論的背景』(技術評論社,2015.4)が役に立つかもしれません。著者の一人が鬼雲の作者です。(本全体は鬼雲について書かれたものではありません)
    http://gihyo.jp/book/2015/978-4-7741-7270-5

    #22168
    Yutaka Emura
    キーマスター

    redakt55 様

    いつもお世話になっております。江村です。

    次のバージョンでは、正規表現エンジンとして、従来の Boost.Regex だけでなく、Onigmo (鬼雲) も選択できるようになります。こちらでは実装が済んでおり、従来の Boost.Regex よりも高速になりました。まもなくベータ版を公開しますので、是非お試しください。

    ご意見ありがとうございました。

    今後もよろしくお願い申し上げます。

1 件の投稿を表示中 (合計 4 個)
  • このトピックに返信するにはログインしてください。