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-相容-posix-api =是”而不是“--enable-posix-api=yes”。從 6.9.6 開始,「--enable-posix-api=yes」僅支援 6.9.5 及更早版本有關 POSIX API 的源代碼級相容性。 (問題#210)
BSD 許可證。
dnf install oniguruma-devel
yum install oniguruma
apt install libonig5
pacman -S oniguruma
zypper install oniguruma
autoreconf -vfi(* 情況:未找到設定腳本。)
./配置
製作
進行安裝
解除安裝
進行解除安裝
配置檢查
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 連接埠由 Microsoft 團隊成員和社群貢獻者保持最新。如果版本已過時,請在 vcpkg 儲存庫上建立問題或拉取要求。
關於日語,請參閱 doc/RE 或 doc/RE.ja。
在您的程式中包含 oniguruma.h。 (Oniguruma API)請參閱文件/API 以了解 Oniguruma 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 中編譯/連結命令列的範例,(前綴 == /usr/local 大小寫)
cc sample.c -L/usr/local/lib -lonig
如果你想在Win32中使用靜態連結函式庫(onig_s.lib),請在C編譯器中加入選項-DONIG_EXTERN=extern。
文件 | 描述 |
---|---|
樣本/callout.c | 標註範例 |
樣本/計數.c | 內建標註範例 *COUNT |
樣本/echo.c | 使用者定義的名稱標註範例 |
樣本/編碼.c | 一些編碼的範例 |
樣本/listcap.c | 捕獲歷史記錄範例 |
樣本/名稱.c | 命名組回呼的範例 |
樣本/posix.c | POSIX API 範例 |
樣本/regset.c | 使用 RegSet API 的範例 |
樣本/掃描.c | 使用 onig_scan() 的範例 |
樣本/簡單.c | 最小值範例(Oniguruma API) |
範例/sql.c | 變數元字元的範例 |
樣本/user_property.c | 使用者定義的 Unicode 屬性範例 |
測試程式
文件 | 描述 |
---|---|
範例/語法.c | Perl、Java 和 ASIS 語法測試。 |
樣本/crnl.c | --enable-crnl-as-line-terminator 測試 |
文件 | 描述 |
---|---|
鬼古魯瑪.h | Oniguruma API 頭檔(公用) |
onig-config.in | 配置檢查程式模板 |
攝政.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 函數 |
onigposix.h | POSIX API 頭檔(公用) |
regposrr.c | POSIX 錯誤訊息函數 |
regposix.c | POSIX API 函數 |
mktable.c | 字元類型表產生器 |
ASCII碼 | 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編碼 |
錦鯉8.c | KOI8編碼 |
錦鯉8_r.c | KOI8-R編碼 |
cp1251.c | CP1251編碼 |
iso8859_1.c | ISO-8859-1(Latin-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(拉丁 9 或西歐與歐元) |
iso8859_16.c | ISO-8859-16(Latin-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++) |