https://github.com/kkos/oniguruma
Oniguruma は、最新で柔軟な正規表現ライブラリです。これには、従来からさまざまな言語に存在していたさまざまな正規表現実装の機能が含まれています。
文字エンコーディングは正規表現オブジェクトごとに指定できます。
サポートされている文字エンコーディング:
ASCII、UTF-8、UTF-16BE、UTF-16LE、UTF-32BE、UTF-32LE、EUC-JP、EUC-TW、EUC-KR、EUC-CN、Shift_JIS、Big5、GB18030、KOI8-R、CP1251、 ISO-8859-1、ISO-8859-2、ISO-8859-3、 ISO-8859-4、ISO-8859-5、ISO-8859-6、ISO-8859-7、ISO-8859-8、ISO-8859-9、ISO-8859-10、ISO-8859-11、ISO- 8859-13、ISO-8859-14、ISO-8859-15、ISO-8859-16
構成スクリプトを使用するときに、以前のバージョンで POSIX API が有効になっており (6.9.5 ではデフォルトで無効になっています)、POSIX API とアプリケーションのバイナリ互換性が必要な場合は、「--enable-binary-compatibility-posix-api=」を指定します。 「--enable-posix-api=yes」の代わりに「yes」を使用します。 6.9.6 以降、「--enable-posix-api=yes」は、POSIX API に関して 6.9.5 以前とのソースレベルの互換性のみをサポートします。 (問題 #210)
BSDライセンス。
dnf install oniguruma-devel
yum install oniguruma
apt install libonig5
pacman -S oniguruma
zypper install oniguruma
autoreconf -vfi (* ケース:configure スクリプトが見つかりません。)
./configure
作る
インストールする
アンインストールする
アンインストールする
構成チェック
onig-config --cflags onig-config --libs onig-config --prefix onig-config --exec-prefix
ビルドライブラリ
.make_win.bat
onig_s.lib: スタティック リンク ライブラリ onig.dll: ダイナミック リンク ライブラリ
テストプログラムを作る
.make_win.bat すべてのテスト
あるいは、vcpkg 依存関係マネージャーを使用して、oniguruma をビルドしてインストールすることもできます。
vcpkg の oniguruma ポートは、マイクロソフトのチーム メンバーとコミュニティの貢献者によって最新の状態に保たれています。バージョンが古い場合は、vcpkg リポジトリで問題を作成するか、プル リクエストを作成してください。
日本語については、doc/RE または doc/RE.ja を参照してください。
プログラムに oniguruma.h を含めます。 (Oniguruma API) Oniguruma API についてはドキュメント/API を参照してください。
oniguruma.h での UChar 型 (== unsigned char) の定義を無効にしたい場合は、ONIG_ESCAPE_UCHAR_COLLISION を定義してから、oniguruma.h をインクルードしてください。
oniguruma.h での regex_t 型の定義を無効にしたい場合は、ONIG_ESCAPE_REGEX_T_COLLISION を定義してから、oniguruma.h をインクルードします。
Unix または Cygwin でのコンパイル/リンク コマンド ラインの例 (prefix == /usr/local の場合)
cc sample.c -L/usr/local/lib -lonig
Win32でスタティックリンクライブラリ(onig_s.lib)を使用したい場合は、Cコンパイラにオプション -DONIG_EXTERN=extern を追加してください。
ファイル | 説明 |
---|---|
サンプル/吹き出し.c | コールアウトの例 |
サンプル/カウント.c | 組み込みコールアウトの例 *COUNT |
サンプル/echo.c | ユーザー定義の名前のコールアウトの例 |
サンプル/エンコード.c | いくつかのエンコーディングの例 |
サンプル/listcap.c | キャプチャ履歴の例 |
サンプル/名前.c | 名前付きグループのコールバックの例 |
サンプル/posix.c | POSIX API サンプル |
サンプル/regset.c | RegSet APIの使用例 |
サンプル/スキャン.c | onig_scan() の使用例 |
サンプル/simple.c | 最低限の例(鬼車API) |
サンプル/sql.c | 可変メタ文字の例 |
サンプル/user_property.c | ユーザー定義の Unicode プロパティの例 |
テストプログラム
ファイル | 説明 |
---|---|
サンプル/syntax.c | Perl、Java、ASIS の構文テスト。 |
サンプル/crnl.c | --enable-crnl-as-line-terminator テスト |
ファイル | 説明 |
---|---|
オニグルマ.h | Oniguruma APIヘッダファイル(公開) |
onig-config.in | 構成チェックプログラムテンプレート |
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 | ハッシュテーブル関数 |
onignu.h | GNU 正規表現 API ヘッダー ファイル (パブリック) |
regnu.c | GNU 正規表現 API 関数 |
onigposix.h | POSIX API ヘッダー ファイル (パブリック) |
regposerr.c | POSIXエラーメッセージ関数 |
regposix.c | POSIX API関数 |
mktable.c | 文字型テーブルジェネレータ |
ascii.c | ASCIIエンコーディング |
euc_jp.c | EUC-JPエンコーディング |
euc_tw.c | EUC-TWエンコーディング |
euc_kr.c | EUC-KR、EUC-CN エンコーディング |
sjis.c | Shift_JISエンコーディング |
big5.c | Big5 エンコーディング |
gb18030.c | GB18030エンコーディング |
koi8.c | KOI8エンコーディング |
koi8_r.c | KOI8-Rエンコーディング |
cp1251.c | CP1251エンコーディング |
iso8859_1.c | ISO-8859-1 (ラテン語-1) |
iso8859_2.c | ISO-8859-2 (ラテン-2) |
iso8859_3.c | ISO-8859-3 (ラテン語-3) |
iso8859_4.c | ISO-8859-4 (ラテン-4) |
iso8859_5.c | ISO-8859-5 (キリル文字) |
iso8859_6.c | ISO-8859-6 (アラビア語) |
iso8859_7.c | ISO-8859-7 (ギリシャ語) |
iso8859_8.c | ISO-8859-8 (ヘブライ語) |
iso8859_9.c | ISO-8859-9 (Latin-5 またはトルコ語) |
iso8859_10.c | ISO-8859-10 (Latin-6 または Nordic) |
iso8859_11.c | ISO-8859-11 (タイ語) |
iso8859_13.c | ISO-8859-13 (Latin-7 またはバルト海地域) |
iso8859_14.c | ISO-8859-14 (Latin-8 またはケルト語) |
iso8859_15.c | ISO-8859-15 (Latin-9 またはユーロを使用した西ヨーロッパ) |
iso8859_16.c | ISO-8859-16 (ラテン-10) |
utf8.c | UTF-8エンコーディング |
utf16_be.c | UTF-16BEエンコーディング |
utf16_le.c | UTF-16LEエンコーディング |
utf32_be.c | UTF-32BEエンコーディング |
utf32_le.c | UTF-32LEエンコーディング |
ユニコード.c | Unicode エンコードの一般的なコード |
unicode_fold_data.c | Unicode 折りたたみデータ |
ウィンドウズ/testc.c | Windows用テストプログラム(VC++) |