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 的资源文件 |