README.ja 2017/08/25
-µ´¼Ö ---- (C) K.Kosako <kkosako0@gmail.com>
+鬼車 ---- (C) K.Kosako <kkosako0@gmail.com>
https://github.com/kkos/oniguruma
-µ´¼Ö¤ÏÀµµ¬É½¸½¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë¡£
-¤³¤Î¥é¥¤¥Ö¥é¥ê¤ÎÆÃĹ¤Ï¡¢¤½¤ì¤¾¤ì¤ÎÀµµ¬É½¸½¥ª¥Ö¥¸¥§¥¯¥È¤´¤È¤Ë
-ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò»ØÄê¤Ç¤¤ë¤³¤È¤Ç¤¢¤ë¡£
+鬼車は正規表現ライブラリである。
+このライブラリの特長は、それぞれの正規表現オブジェクトごとに
+文字エンコーディングを指定できることである。
-¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°:
+ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bæ\96\87å\97ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°:
ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE,
EUC-JP, EUC-TW, EUC-KR, EUC-CN,
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
-* GB18030: µ×ÊÝ·òÍλáÄó¶¡
-* CP1251: Byte»áÄó¶¡
+* GB18030: 久保健洋氏提供
+* CP1251: Byte氏提供
------------------------------------------------------------
-¥é¥¤¥»¥ó¥¹
+ã\83©ã\82¤ã\82»ã\83³ã\82¹
- BSD¥é¥¤¥»¥ó¥¹
+ BSDã\83©ã\82¤ã\82»ã\83³ã\82¹
-¥¤¥ó¥¹¥È¡¼¥ë
+インストール
- ¥±¡¼¥¹£±: Unix¤ÈCygwin´Ä¶
+ ケース1: UnixとCygwin環境
- 1. autoreconf -vfi (* configure¥¹¥¯¥ê¥×¥È¤¬¤Ê¤¤¤È¤¤À¤±)
+ 1. autoreconf -vfi (* configureスクリプトがないときだけ)
2. ./configure
3. make
4. make install
- ¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë
+ アンインストール
make uninstall
- ¹½À®³Îǧ
+ 構成確認
onig-config --cflags
onig-config --libs
- ¥±¡¼¥¹£²: Windows 64/32bit (Visual Studio)´Ä¶
+ ケース2: Windows 64/32bit (Visual Studio)環境
- make_win64 ¤¢¤ë¤¤¤Ï make_win32 ¤ò¼Â¹Ô
+ make_win64 あるいは make_win32 を実行
onig_s.lib: static link library
onig.dll: dynamic link library
- * ưºî¥Æ¥¹¥È (ASCII/Shift_JIS)
+ * 動作テスト (ASCII/Shift_JIS)
1. cd src
2. copy ..\windows\testc.c .
3. nmake -f Makefile.windows ctest
- (Visual Studio Community 2015 ¤Çưºî³Îǧ)
+ (Visual Studio Community 2015 で動作確認)
-Àµµ¬É½¸½
+正規表現
- doc/RE.ja¤ò»²¾È
+ doc/RE.jaを参照
-»ÈÍÑÊýË¡
+使用方法
- »ÈÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ç¡¢oniguruma.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë(Oniguruma API¤Î¾ì¹ç)¡£
- Oniguruma API¤Ë¤Ä¤¤¤Æ¤Ï¡¢doc/API.ja¤ò»²¾È¡£
+ 使用するプログラムで、oniguruma.hをインクルードする(Oniguruma APIの場合)。
+ Oniguruma APIについては、doc/API.jaを参照。
- oniguruma.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë·¿Ì¾UChar(== unsigned char)¤ò̵¸ú¤Ë¤·¤¿¤¤¾ì¹ç
- ¤Ë¤Ï¡¢ONIG_ESCAPE_UCHAR_COLLISION¤òdefine¤·¤Æ¤«¤éoniguruma.h¤ò¥¤¥ó¥¯¥ë¡¼¥É
- ¤¹¤ë¤³¤È¡£¤³¤Î¤È¤¤Ë¤ÏUChar¤ÏÄêµÁ¤µ¤ì¤º¡¢OnigUChar¤È¤¤¤¦Ì¾Á°¤ÎÄêµÁ¤Î¤ß¤¬
- ͸ú¤Ë¤Ê¤ë¡£
+ oniguruma.hで定義されている型名UChar(== unsigned char)を無効にしたい場合
+ には、ONIG_ESCAPE_UCHAR_COLLISIONをdefineしてからoniguruma.hをインクルード
+ すること。このときにはUCharは定義されず、OnigUCharという名前の定義のみが
+ 有効になる。
- oniguruma.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë·¿Ì¾regex_t¤ò̵¸ú¤Ë¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
- ONIG_ESCAPE_REGEX_T_COLLISION¤òdefine¤·¤Æ¤«¤éoniguruma.h¤ò¥¤¥ó¥¯¥ë¡¼¥É
- ¤¹¤ë¤³¤È¡£¤³¤Î¤È¤¤Ë¤Ïregex_t¤ÏÄêµÁ¤µ¤ì¤º¡¢OnigRegexType, OnigRegex¤È¤¤¤¦
- ̾Á°¤ÎÄêµÁ¤Î¤ß¤¬Í¸ú¤Ë¤Ê¤ë¡£
+ oniguruma.hで定義されている型名regex_tを無効にしたい場合には、
+ ONIG_ESCAPE_REGEX_T_COLLISIONをdefineしてからoniguruma.hをインクルード
+ すること。このときにはregex_tは定義されず、OnigRegexType, OnigRegexという
+ 名前の定義のみが有効になる。
- Unix/Cygwin¾å¤Ç¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤ÎÎã¡§
- (prefix¤¬/usr/local¤Î¤È¤)
+ Unix/Cygwin上でコンパイル、リンクする場合の例:
+ (prefixが/usr/localのとき)
cc sample.c -L/usr/local/lib -lonig
- GNU libtool¤ò»ÈÍѤ·¤Æ¤¤¤ë¤Î¤Ç¡¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤¬¶¦Í¥é¥¤¥Ö¥é¥ê¤ò¥µ¥Ý¡¼¥È¤·¤Æ
- ¤¤¤ì¤Ð¡¢»ÈÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
- ÀÅۥ饤¥Ö¥é¥ê¤È¶¦Í¥é¥¤¥Ö¥é¥ê¤Î¤É¤Á¤é¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ëÊýË¡¡¢¼Â¹Ô»þÅÀ¤Ç¤Î
- ´Ä¶ÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼«Ê¬¤ÇÄ´¤Ù¤Æ²¼¤µ¤¤¡£
-
-
- Win32¤Ç¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê(onig_s.lib)¤ò¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢
- ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤¤Ë -DONIG_EXTERN=extern ¤ò¥³¥ó¥Ñ¥¤¥ë°ú¿ô¤ËÄɲ乤뤳¤È¡£
-
-
-»ÈÍÑÎã¥×¥í¥°¥é¥à
-
- sample/simple.c ºÇ¾®Îã (Oniguruma API)
- sample/names.c ̾Á°ÉÕ¤¥°¥ë¡¼¥×¥³¡¼¥ë¥Ð¥Ã¥¯»ÈÍÑÎã
- sample/encode.c ´ö¤Ä¤«¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°»ÈÍÑÎã
- sample/listcap.c Êá³ÍÍúÎòµ¡Ç½¤Î»ÈÍÑÎã
- sample/posix.c POSIX API»ÈÍÑÎã
- sample/sql.c ²ÄÊѥ᥿ʸ»úµ¡Ç½»ÈÍÑÎã (SQL-like ¥Ñ¥¿¡¼¥ó)
- sample/user_property.c ¥æ¡¼¥¶ÄêµÁUnicode¥×¥í¥Ñ¥Æ¥£¤Î»ÈÍÑÎã
-
-
-¥Æ¥¹¥È¥×¥í¥°¥é¥à
- sample/syntax.c Perl¡¢Java¡¢ASISʸˡ¤Î¥Æ¥¹¥È
- sample/crnl.c --enable-crnl-as-line-terminator ¥Æ¥¹¥È
-
-
-¥½¡¼¥¹¥Õ¥¡¥¤¥ë
-
- oniguruma.h µ´¼ÖAPI¥Ø¥Ã¥À (¸ø³«)
- onig-config.in onig-config¥×¥í¥°¥é¥à ¥Æ¥ó¥×¥ì¡¼¥È
-
- regenc.h ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°ÏÈÁȤߥإåÀ
- regint.h ÆâÉôÀë¸À
- regparse.h regparse.c¤Èregcomp.c¤Î¤¿¤á¤ÎÆâÉôÀë¸À
- regcomp.c ¥³¥ó¥Ñ¥¤¥ë¡¢ºÇŬ²½´Ø¿ô
- regenc.c ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°ÏÈÁȤß
- regerror.c ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸´Ø¿ô
- regext.c ³ÈÄ¥API´Ø¿ô
- regexec.c ¸¡º÷¡¢¾È¹ç´Ø¿ô
- regparse.c Àµµ¬É½¸½¥Ñ¥¿¡¼¥ó²òÀÏ´Ø¿ô
- regsyntax.c Àµµ¬É½¸½¥Ñ¥¿¡¼¥óʸˡ´Ø¿ô¡¢Áȹþ¤ßʸˡÄêµÁ
- regtrav.c Êá³ÍÍúÎòÌÚ½ä²ó´Ø¿ô
- regversion.c ÈǾðÊó´Ø¿ô
- st.h ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë´Ø¿ôÀë¸À
- st.c ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë´Ø¿ô
-
- oniggnu.h GNU regex API¥Ø¥Ã¥À (¸ø³«)
- reggnu.c GNU regex API´Ø¿ô
-
- onigposix.h POSIX API¥Ø¥Ã¥À (¸ø³«)
- regposerr.c POSIX API¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸´Ø¿ô
- 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 ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
+ GNU libtoolを使用しているので、プラットフォームが共有ライブラリをサポートして
+ いれば、使用できるようになっている。
+ 静的ライブラリと共有ライブラリのどちらを使用するかを指定する方法、実行時点での
+ 環境設定方法については、自分で調べて下さい。
+
+
+ Win32でスタティックリンクライブラリ(onig_s.lib)をリンクする場合には、
+ コンパイルするときに -DONIG_EXTERN=extern をコンパイル引数に追加すること。
+
+
+使用例プログラム
+
+ sample/simple.c 最小例 (Oniguruma API)
+ sample/names.c 名前付きグループコールバック使用例
+ sample/encode.c 幾つかの文字エンコーディング使用例
+ sample/listcap.c 捕獲履歴機能の使用例
+ sample/posix.c POSIX API使用例
+ sample/sql.c 可変メタ文字機能使用例 (SQL-like パターン)
+ sample/user_property.c ユーザ定義Unicodeプロパティの使用例
+
+
+テストプログラム
+ sample/syntax.c Perl、Java、ASIS文法のテスト
+ sample/crnl.c --enable-crnl-as-line-terminator テスト
+
+
+ソースファイル
+
+ oniguruma.h 鬼車APIヘッダ (公開)
+ onig-config.in onig-configプログラム テンプレート
+
+ regenc.h 文字エンコーディング枠組みヘッダ
+ regint.h 内部宣言
+ regparse.h regparse.cとregcomp.cのための内部宣言
+ regcomp.c コンパイル、最適化関数
+ regenc.c 文字エンコーディング枠組み
+ regerror.c エラーメッセージ関数
+ regext.c 拡張API関数
+ regexec.c 検索、照合関数
+ regparse.c 正規表現パターン解析関数
+ regsyntax.c 正規表現パターン文法関数、組込み文法定義
+ regtrav.c 捕獲履歴木巡回関数
+ regversion.c 版情報関数
+ st.h ハッシュテーブル関数宣言
+ st.c ハッシュテーブル関数
+
+ oniggnu.h GNU regex APIヘッダ (公開)
+ reggnu.c GNU regex API関数
+
+ onigposix.h POSIX APIヘッダ (公開)
+ regposerr.c POSIX APIエラーメッセージ関数
+ regposix.c POSIX API関数
+
+ mktable.c 文字タイプテーブル生成プログラム
+ ascii.c ASCII ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ euc_jp.c EUC-JP ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ euc_tw.c EUC-TW ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ euc_kr.c EUC-KR, EUC-CN ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ sjis.c Shift_JIS ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ big5.c Big5 ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ gb18030.c GB18030 ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ koi8.c KOI8 ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ koi8_r.c KOI8-R ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ cp1251.c CP1251 ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
iso8859_1.c ISO-8859-1 (Latin-1)
iso8859_2.c ISO-8859-2 (Latin-2)
iso8859_3.c ISO-8859-3 (Latin-3)
iso8859_6.c ISO-8859-6 (Arabic)
iso8859_7.c ISO-8859-7 (Greek)
iso8859_8.c ISO-8859-8 (Hebrew)
- iso8859_9.c ISO-8859-9 (Latin-5 ¤Þ¤¿¤Ï Turkish)
- iso8859_10.c ISO-8859-10 (Latin-6 ¤Þ¤¿¤Ï Nordic)
+ iso8859_9.c ISO-8859-9 (Latin-5 または Turkish)
+ iso8859_10.c ISO-8859-10 (Latin-6 または Nordic)
iso8859_11.c ISO-8859-11 (Thai)
- iso8859_13.c ISO-8859-13 (Latin-7 ¤Þ¤¿¤Ï Baltic Rim)
- iso8859_14.c ISO-8859-14 (Latin-8 ¤Þ¤¿¤Ï Celtic)
- iso8859_15.c ISO-8859-15 (Latin-9 ¤Þ¤¿¤Ï West European with Euro)
+ iso8859_13.c ISO-8859-13 (Latin-7 または Baltic Rim)
+ iso8859_14.c ISO-8859-14 (Latin-8 または Celtic)
+ iso8859_15.c ISO-8859-15 (Latin-9 または West European with Euro)
iso8859_16.c ISO-8859-16
- (Latin-10 ¤Þ¤¿¤Ï South-Eastern European with Euro)
- utf8.c UTF-8 ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
- utf16_be.c UTF-16BE ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
- utf16_le.c UTF-16LE ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
- utf32_be.c UTF-32BE ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
- utf32_le.c UTF-32LE ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
- unicode.c Unicode¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¶¦Ä̽èÍý
-
- win32/Makefile Win32ÍÑ Makefile (for VC++)
- win32/config.h Win32ÍÑ config.h
+ (Latin-10 または South-Eastern European with Euro)
+ utf8.c UTF-8 ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ utf16_be.c UTF-16BE ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ utf16_le.c UTF-16LE ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ utf32_be.c UTF-32BE ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ utf32_le.c UTF-32LE ã\82¨ã\83³ã\82³ã\83¼ã\83\87ã\82£ã\83³ã\82°
+ unicode.c Unicodeエンコーディングの共通処理
+
+ win32/Makefile Win32用 Makefile (for VC++)
+ win32/config.h Win32用 config.h
and I'm thankful to Akinori MUSHA.