RegexKitLite

Cocoa 正規表現ライブラリといえば、国産、かつ(たぶん)世界で最も利用されている OgreKit があるので、他には目が行きにくいかもしれませんが、恐らく最後発と思われる、「 RegexKit 」というフレームワークが出てきています。

国内・海外問わず、多くのアプリに採用されている、OgreKit の貫禄には負けますが、RegexKit の気合いも、なかなかのものです。まだご存じない方は、一度チェックしてみてください:

  • ライセンス — BSD
  • 正規表現エンジン — PCRE
  • 特徴
    • 64bit 対応
    • GC 対応
    • スレッドセーフ
    • キャッシュ、低レベル API などを駆使して高速、低負荷に
    • RSS フィードで更新される、Xcode 3 対応の完全なドキュメント(これが OgreKit への大きなアドバンテージかもしれない)
    • Instruments.app 用の Instruments

この RegexKit の子分(?)として、さらに最近リリースされたのが、RegexKitLite です。

RegexKitLite は、RegexKit の機能をやや縮小したもの…ではなくて、上記の気合いは引き継ぎつつも、まったくの別物になっています:

  • ライセンス — BSD
  • 正規表現エンジン — ICU
  • 特徴
    • MacOS X にもともと内蔵されている ICU ライブラリを利用、かつ、RegexKit がフレームワーク形式であるのに対して、Lite で用意されているのは、基礎的な NSString のカテゴリーのみであるため、激しくサイズが小さい
    • もちろん詳しいドキュメント付き。

つまり、レゴブロックの小さな基本セットのようなもの です。

事実、「文字列中の 最初の マッチを返す」といったメソッドしか用意されていないので、ドキュメントには、それを使ってすべてのマッチを返す NSEnumerator のサブクラスを作る、という チュートリアル が入っています。

…というわけで、OgreKit や RegexKit といったフルフィーチャーのフレームワークと比べて、実戦で使うには、ある程度自分の手を動かす必要があるのですが、それは逆に、不必要なコードを自分のアプリにいっさい含めなくてよい、ということなので、Kaku のように「圧縮すれば、まだフロッピーにも入るよ!」が売り(Mac ユーザーにとっては何年も前から意味のないアピールポイント…笑)のアプリを開発している方にはうってつけ、と言えるでしょう。

RegexkitLite をプロジェクトに追加する

ほとんど ドキュメント書いてある ことと同じですが、僕が詰まったところを少し、補足してあります。

  1. ICU ライブラリをプロジェクトに追加します。

    「Frameworks」グループ を選択して右クリック、「追加」>「既存のファイル…」 から ICU ライブラリを選択して、追加します。

    ICU ライブラリは、Leopard 以降向けのアプリなら:

    • /Developer/SDKs/MacOSX10.5.sdk/usr/lib/libicucore.dylib

    を、それ以外はプロジェクトの設定に従って、適切なバージョンを追加します。

    追加の際現れるシートでは、「デスティネーショングループのフォルダに項目をコピーする(必要な場合)」のチェックを外しておく よう、注意してください。

    ここでさらに注意。追加した libicucore.dylib は、ファイルタイプ「 compiled.mach-o 」と認識されますが、これだとビルド時にエラーになるので、情報パネルを開いて、「 compiled.mach-o.dylibに修正 しておいてください。

  2. ICU ライブラリをターゲットに追加します。

    先ほど追加した libicucore.dylib を、任意のターゲットの「バイナリをライブラリにリンク」ビルドフェーズにドラッグ&ドロップして追加 します。

    ※ また、「バンドルリソースをコピー」ビルドフェーズには勝手に追加されている ので、これを 削除 します。

  3. あとは、RegexKitLite のパッケージに入っている、RegexKitLite.h/m をプロジェクトに追加します。

    こちらは「デスティネーショングループのフォルダに項目をコピーする(必要な場合)」 を有効にして、コピーしましょう。

  4. ドキュメントを Xcode に登録します。

    Xcode のドキュメントウィンドウ左下のアクションボタンから、「新規サブスクリプション…」 を選んで、フィード URL:

    • feed://regexkit.sourceforge.net/RegexKitLiteDocSets.atom

    を追加すると、Apple のリファレンスなどと同じように使うことができます。とても便利!

…というわけで、あとはいつものように import "RegexKitLite.h" して使います。

余談

なぜ突然正規表現ライブラリの話が出てきたかと言うと、ひょんなことから Kaku にもそこそこの構文カラーリングをつけたいなあ… と思ったから。

ライブラリが良くても、僕がひどい使い方をして遅くしてしまうかもしれないので、実現可能性は不透明ですが、まあなんとか頑張ってみます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です