1README.ja 2017/08/25 2 3鬼車 ---- (C) K.Kosako <kkosako0@gmail.com> 4 5https://github.com/kkos/oniguruma 6 7鬼車は正規表現ライブラリである。 8このライブラリの特長は、それぞれの正規表現オブジェクトごとに 9文字エンコーディングを指定できることである。 10 11サポートしている文字エンコーディング: 12 13 ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, 14 EUC-JP, EUC-TW, EUC-KR, EUC-CN, 15 Shift_JIS, Big5, GB18030, KOI8-R, CP1251, 16 ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, 17 ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, 18 ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16 19 20* GB18030: 久保健洋氏提供 21* CP1251: Byte氏提供 22------------------------------------------------------------ 23 24ライセンス 25 26 BSDライセンス 27 28 29インストール 30 31 ケース1: UnixとCygwin環境 32 33 1. autoreconf -vfi (* configureスクリプトがないときだけ) 34 35 2. ./configure 36 3. make 37 4. make install 38 39 アンインストール 40 41 make uninstall 42 43 構成確認 44 45 onig-config --cflags 46 onig-config --libs 47 onig-config --prefix 48 onig-config --exec-prefix 49 50 51 52 ケース2: Windows 64/32bit (Visual Studio)環境 53 54 make_win64 あるいは make_win32 を実行 55 56 onig_s.lib: static link library 57 onig.dll: dynamic link library 58 59 * 動作テスト (ASCII/Shift_JIS) 60 1. cd src 61 2. copy ..\windows\testc.c . 62 3. nmake -f Makefile.windows ctest 63 64 (Visual Studio Community 2015 で動作確認) 65 66 67 68正規表現 69 70 doc/RE.jaを参照 71 72 73使用方法 74 75 使用するプログラムで、oniguruma.hをインクルードする(Oniguruma APIの場合)。 76 Oniguruma APIについては、doc/API.jaを参照。 77 78 oniguruma.hで定義されている型名UChar(== unsigned char)を無効にしたい場合 79 には、ONIG_ESCAPE_UCHAR_COLLISIONをdefineしてからoniguruma.hをインクルード 80 すること。このときにはUCharは定義されず、OnigUCharという名前の定義のみが 81 有効になる。 82 83 oniguruma.hで定義されている型名regex_tを無効にしたい場合には、 84 ONIG_ESCAPE_REGEX_T_COLLISIONをdefineしてからoniguruma.hをインクルード 85 すること。このときにはregex_tは定義されず、OnigRegexType, OnigRegexという 86 名前の定義のみが有効になる。 87 88 Unix/Cygwin上でコンパイル、リンクする場合の例: 89 (prefixが/usr/localのとき) 90 cc sample.c -L/usr/local/lib -lonig 91 92 GNU libtoolを使用しているので、プラットフォームが共有ライブラリをサポートして 93 いれば、使用できるようになっている。 94 静的ライブラリと共有ライブラリのどちらを使用するかを指定する方法、実行時点での 95 環境設定方法については、自分で調べて下さい。 96 97 98 Win32でスタティックリンクライブラリ(onig_s.lib)をリンクする場合には、 99 コンパイルするときに -DONIG_EXTERN=extern をコンパイル引数に追加すること。 100 101 102使用例プログラム 103 104 sample/simple.c 最小例 (Oniguruma API) 105 sample/names.c 名前付きグループコールバック使用例 106 sample/encode.c 幾つかの文字エンコーディング使用例 107 sample/listcap.c 捕獲履歴機能の使用例 108 sample/posix.c POSIX API使用例 109 sample/sql.c 可変メタ文字機能使用例 (SQL-like パターン) 110 sample/user_property.c ユーザ定義Unicodeプロパティの使用例 111 112 113テストプログラム 114 sample/syntax.c Perl、Java、ASIS文法のテスト 115 sample/crnl.c --enable-crnl-as-line-terminator テスト 116 117 118ソースファイル 119 120 oniguruma.h 鬼車APIヘッダ (公開) 121 onig-config.in onig-configプログラム テンプレート 122 123 regenc.h 文字エンコーディング枠組みヘッダ 124 regint.h 内部宣言 125 regparse.h regparse.cとregcomp.cのための内部宣言 126 regcomp.c コンパイル、最適化関数 127 regenc.c 文字エンコーディング枠組み 128 regerror.c エラーメッセージ関数 129 regext.c 拡張API関数 130 regexec.c 検索、照合関数 131 regparse.c 正規表現パターン解析関数 132 regsyntax.c 正規表現パターン文法関数、組込み文法定義 133 regtrav.c 捕獲履歴木巡回関数 134 regversion.c 版情報関数 135 st.h ハッシュテーブル関数宣言 136 st.c ハッシュテーブル関数 137 138 oniggnu.h GNU regex APIヘッダ (公開) 139 reggnu.c GNU regex API関数 140 141 onigposix.h POSIX APIヘッダ (公開) 142 regposerr.c POSIX APIエラーメッセージ関数 143 regposix.c POSIX API関数 144 145 mktable.c 文字タイプテーブル生成プログラム 146 ascii.c ASCII エンコーディング 147 euc_jp.c EUC-JP エンコーディング 148 euc_tw.c EUC-TW エンコーディング 149 euc_kr.c EUC-KR, EUC-CN エンコーディング 150 sjis.c Shift_JIS エンコーディング 151 big5.c Big5 エンコーディング 152 gb18030.c GB18030 エンコーディング 153 koi8.c KOI8 エンコーディング 154 koi8_r.c KOI8-R エンコーディング 155 cp1251.c CP1251 エンコーディング 156 iso8859_1.c ISO-8859-1 (Latin-1) 157 iso8859_2.c ISO-8859-2 (Latin-2) 158 iso8859_3.c ISO-8859-3 (Latin-3) 159 iso8859_4.c ISO-8859-4 (Latin-4) 160 iso8859_5.c ISO-8859-5 (Cyrillic) 161 iso8859_6.c ISO-8859-6 (Arabic) 162 iso8859_7.c ISO-8859-7 (Greek) 163 iso8859_8.c ISO-8859-8 (Hebrew) 164 iso8859_9.c ISO-8859-9 (Latin-5 または Turkish) 165 iso8859_10.c ISO-8859-10 (Latin-6 または Nordic) 166 iso8859_11.c ISO-8859-11 (Thai) 167 iso8859_13.c ISO-8859-13 (Latin-7 または Baltic Rim) 168 iso8859_14.c ISO-8859-14 (Latin-8 または Celtic) 169 iso8859_15.c ISO-8859-15 (Latin-9 または West European with Euro) 170 iso8859_16.c ISO-8859-16 171 (Latin-10 または South-Eastern European with Euro) 172 utf8.c UTF-8 エンコーディング 173 utf16_be.c UTF-16BE エンコーディング 174 utf16_le.c UTF-16LE エンコーディング 175 utf32_be.c UTF-32BE エンコーディング 176 utf32_le.c UTF-32LE エンコーディング 177 unicode.c Unicodeエンコーディングの共通処理 178 179 win32/Makefile Win32用 Makefile (for VC++) 180 win32/config.h Win32用 config.h 181 182 183and I'm thankful to Akinori MUSHA. 184