https://github.com/k-takata/Onigmo
Onigmo は、Oniguruma からフォークされた正規表現ライブラリです。 Perl 5.10 以降でサポートされているK
、 R
、 (?(cond)yes|no)
などの新しい式のサポートに重点を置いています。
Onigmo は Ruby 2.0 以降のデフォルトの正規表現ライブラリとして使用されているため、多くのパッチは Ruby 2.x からバックポートされています。
Wiki ページも参照してください: https://github.com/k-takata/Onigmo/wiki
BSDライセンス。
./autogen.sh
( configure
存在しない場合)./configure
make
make install
テスト
テストを行う
アンインストールする
アンインストールする
構成チェック
onigmo-config --cflags onigmo-config --libs onigmo-config --prefix onigmo-config --exec-prefix
build_nmake.cmd
を実行します。 build_x64
またはbuild_x86
作業/出力ディレクトリとして使用されます。
onigmo_s.lib: static link library
onigmo.lib: import library for dynamic link
onigmo.dll: dynamic link library
テスト(ASCII/Shift_JIS/EUC-JP/Unicode)
build_nmake.cmd test
を実行します。テストを実行するには、Python (Onigmo と同じビット数) が必要です。
mingw32-make -f win32/Makefile.mingw
を実行します。 build_x86-64
、 build_i686
などが作業/出力ディレクトリとして使用されます。
libonigmo.a: static link library
libonigmo.dll.a: import library for dynamic link
onigmo.dll: dynamic link library
テスト(ASCII/Shift_JIS/EUC-JP/Unicode)
mingw32-make -f win32/Makefile.mingw test
を実行します。テストを実行するには、Python (Onigmo と同じビット数) が必要です。
MSYS2 上で MinGW を使用する場合は、UNIX のように./configure
やmake
使用することもできます。この場合、DLL 名には API バージョン番号が含まれます。例えば:
libonigmo-6.dll
日本語については、doc/RE または doc/RE.ja を参照してください。
onigmo.h をプログラムに含めます。 (Onigmo API) Onigmo API については、ドキュメント/API を参照してください。
onigmo.h でのUChar
型 (== unsigned char
) の定義を無効にしたい場合は、 ONIG_ESCAPE_UCHAR_COLLISION
定義してから onigmo.h をインクルードします。
onigmo.h でのregex_t
型の定義を無効にしたい場合は、 ONIG_ESCAPE_REGEX_T_COLLISION
を定義してから、onigmo.h をインクルードします。
Unix または Cygwin でのコンパイル/リンク コマンド ラインの例 (prefix == /usr/local の場合)
cc sample.c -L/usr/local/lib -lonigmo
Win32でスタティックリンクライブラリ(onigmo_s.lib)を使用したい場合は、Cコンパイラにオプション-DONIG_EXTERN=extern
を追加してください。
ファイル | 説明 |
---|---|
サンプル/simple.c | 最小値の例 (Onigmo API) |
サンプル/名前.c | 名前付きグループのコールバックの例。 |
サンプル/エンコード.c | いくつかのエンコーディングの例。 |
サンプル/listcap.c | キャプチャ履歴の例。 |
サンプル/posix.c | POSIX API サンプル。 |
サンプル/sql.c | 可変メタ文字の例。 |
テストプログラム
ファイル | 説明 |
---|---|
サンプル/syntax.c | Perl、Java、ASIS の構文テスト。 |
サンプル/crnl.c | CRNLテスト |
ファイル | 説明 |
---|---|
オニグモ.h | Onigmo API ヘッダー ファイル (パブリック) |
onigmo-config.in | 構成チェックプログラムテンプレート |
onigmo.py | Python 用の Onigmo モジュール |
regenc.h | 文字エンコーディング フレームワーク ヘッダー ファイル |
regint.h | 内部定義 |
regparse.h | regparse.c および regcomp.c の内部定義 |
regcomp.c | コンパイルおよび最適化関数 |
regenc.c | 文字エンコーディング フレームワーク |
regerror.c | エラーメッセージ機能 |
正規表現.c | 拡張API機能(デラックス版API) |
regexec.c | 検索および一致機能 |
regparse.c | 解析関数。 |
regsyntax.c | パターン構文関数と組み込み構文定義 |
regtrav.c | キャプチャ履歴ツリー データ トラバース関数 |
regversion.c | バージョン情報機能 |
st.h | ハッシュ テーブル関数のヘッダー ファイル |
st.c | ハッシュテーブル関数 |
onigmognu.h | GNU 正規表現 API ヘッダー ファイル (パブリック) |
regnu.c | GNU 正規表現 API 関数 |
onigmoposix.h | POSIX API ヘッダー ファイル (パブリック) |
regposerr.c | POSIXエラーメッセージ関数 |
regposix.c | POSIX API関数 |
enc/mktable.c | 文字型テーブルジェネレータ |
enc/ascii.c | ASCII-8BITエンコーディング |
enc/jis/ | JIS特性データ |
enc/euc_jp.c | EUC-JPエンコーディング |
enc/euc_tw.c | EUC-TWエンコーディング |
enc/euc_kr.c | EUC-KR、EUC-CN エンコーディング |
enc/shift_jis.c | Shift_JIS エンコード |
enc/shift_jis.h | Shift_JIS と Windows-31J エンコーディングの共通部分 |
enc/windows_31j.c | Windows-31J (CP932) エンコーディング |
enc/big5.c | Big5 エンコーディング |
enc/gb18030.c | GB18030エンコーディング |
enc/gbk.c | GBKエンコーディング |
enc/koi8_r.c | KOI8-Rエンコーディング |
enc/koi8_u.c | KOI8-Uエンコーディング |
enc/iso_8859.h | ISO-8859 エンコーディングの共通定義 |
enc/iso_8859_1.c | ISO-8859-1 (ラテン語-1) |
enc/iso_8859_2.c | ISO-8859-2 (ラテン-2) |
enc/iso_8859_3.c | ISO-8859-3 (ラテン語-3) |
enc/iso_8859_4.c | ISO-8859-4 (ラテン-4) |
enc/iso_8859_5.c | ISO-8859-5 (キリル文字) |
enc/iso_8859_6.c | ISO-8859-6 (アラビア語) |
enc/iso_8859_7.c | ISO-8859-7 (ギリシャ語) |
enc/iso_8859_8.c | ISO-8859-8 (ヘブライ語) |
enc/iso_8859_9.c | ISO-8859-9 (Latin-5 またはトルコ語) |
enc/iso_8859_10.c | ISO-8859-10 (Latin-6 または Nordic) |
enc/iso_8859_11.c | ISO-8859-11 (タイ語) |
enc/iso_8859_13.c | ISO-8859-13 (Latin-7 またはバルト海地域) |
enc/iso_8859_14.c | ISO-8859-14 (Latin-8 またはケルト語) |
enc/iso_8859_15.c | ISO-8859-15 (Latin-9 またはユーロを使用した西ヨーロッパ) |
enc/iso_8859_16.c | ISO-8859-16 (ラテン-10) |
enc/utf_8.c | UTF-8エンコーディング |
enc/utf_16be.c | UTF-16BEエンコーディング |
enc/utf_16le.c | UTF-16LEエンコーディング |
enc/utf_32be.c | UTF-32BEエンコーディング |
enc/utf_32le.c | UTF-32LEエンコーディング |
enc/unicode.c | Unicode エンコードの一般的なコード |
enc/ユニコード/ | Unicode 大文字と小文字の折りたたみデータとプロパティ データ |
enc/windows_1250.c | Windows-1250 (CP1250) エンコーディング (中央/東ヨーロッパ) |
enc/windows_1251.c | Windows-1251 (CP1251) エンコード (キリル文字) |
enc/windows_1252.c | Windows-1252 (CP1252) エンコーディング (ラテン語) |
enc/windows_1253.c | Windows-1253 (CP1253) エンコーディング (ギリシャ語) |
enc/windows_1254.c | Windows-1254 (CP1254) エンコーディング (トルコ語) |
enc/windows_1257.c | Windows-1257 (CP1257) エンコーディング (バルト海地域) |
enc/cp949.c | CP949 エンコード (Ruby でのみ使用) |
enc/emacs_mule.c | Emacs 内部エンコーディング (Ruby でのみ使用) |
enc/gb2312.c | GB2312 エンコード (Ruby でのみ使用) |
enc/us_ascii.c | US-ASCII エンコード (Ruby でのみ使用) |
win32/メイクファイル | Win32 (VC++) 用のメイクファイル |
win32/Makefile.mingw | Win32 (MinGW) 用の Makefile |
win32/config.h | Win32 用の config.h |
win32/onigmo.rc | Win32用のリソースファイル |