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)請參閱文件/API 以了解 Onigmo 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 中編譯/連結命令列的範例,(前綴 == /usr/local 大小寫)
cc sample.c -L/usr/local/lib -lonigmo
如果要在Win32中使用靜態連結庫(onigmo_s.lib),請在C編譯器中新增選項-DONIG_EXTERN=extern
。
文件 | 描述 |
---|---|
樣本/簡單.c | 最小值範例(Onigmo API) |
樣本/名稱.c | 命名組回呼的範例。 |
樣本/編碼.c | 一些編碼的範例。 |
樣本/listcap.c | 捕獲歷史記錄的範例。 |
樣本/posix.c | POSIX API 範例。 |
範例/sql.c | 變數元字元的範例。 |
測試程式
文件 | 描述 |
---|---|
範例/語法.c | Perl、Java 和 ASIS 語法測試。 |
樣本/crnl.c | CRNL測試 |
文件 | 描述 |
---|---|
奧尼格莫.h | Onigmo API 頭檔(公用) |
onigmo-config.in | 配置檢查程式模板 |
奧尼格莫.py | Python 的 Onigmo 模組 |
攝政.h | 字符編碼框架頭文件 |
regint.h | 內部定義 |
regparse.h | regparse.c 和 regcomp.c 的內部定義 |
regcomp.c | 編譯和最佳化功能 |
攝政.c | 字符編碼框架 |
regerror.c | 錯誤訊息功能 |
正規表示式 | 擴充API功能(豪華版API) |
正規執行程式 | 搜尋和匹配功能 |
regparse.c | 解析函數。 |
regsyntax.c | 模式語法函數和內建語法定義 |
regtrav.c | 擷取歷史樹資料遍歷函數 |
regversion.c | 版本資訊功能 |
聖赫 | 哈希表函數頭文件 |
不銹鋼 | 哈希表函數 |
奧尼格莫格努.h | GNU 正規表示式 API 頭檔(公共) |
雷格努.c | GNU 正規表示式 API 函數 |
onigmoposix.h | POSIX API 頭檔(公用) |
regposrr.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(Latin-1) |
enc/iso_8859_2.c | ISO-8859-2(Latin-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(拉丁 9 或西歐與歐元) |
enc/iso_8859_16.c | ISO-8859-16(Latin-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/ | 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/Makefile | Win32 的 Makefile (VC++) |
win32/Makefile.mingw | Win32 的 Makefile (MinGW) |
win32/config.h | Win32 的 config.h |
win32/onigmo.rc | Win32 的資源文件 |