For a long time, Oniguruma has been under attack on Google search. (Issue #234)
https://github.com/kkos/oniguruma
Oniguruma is a modern and flexible regular expressions library. Itencompasses features from different regular expression implementationsthat traditionally exist in different languages.
Character encoding can be specified per regular expression object.
Supported character encodings:
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
When using configure script, if you have the POSIX API enabled in an earlier version (disabled by default in 6.9.5) and you need application binary compatibility with the POSIX API, specify "--enable-binary-compatible-posix-api=yes" instead of "--enable-posix-api=yes". Starting in 6.9.6, "--enable-posix-api=yes" only supports source-level compatibility for 6.9.5 and earlier about POSIX API. (Issue #210)
BSD license.
dnf install oniguruma
yum install oniguruma
apt install libonig5
pacman -S oniguruma
zypper install oniguruma
autoreconf -vfi (* case: configure script is not found.)
./configure
make
make install
uninstall
make uninstall
configuration check
onig-config --cflagsonig-config --libsonig-config --prefixonig-config --exec-prefix
build library
.\make_win.bat
onig_s.lib: static link libraryonig.dll: dynamic link library
make test programs
.\make_win.bat all-test
Alternatively, you can build and install oniguruma using vcpkg dependency manager:
The oniguruma port in vcpkg is kept up to date by microsoft team members and community contributors.If the version is out of date, please create an issue or pull request on the vcpkg repository.
See doc/RE or doc/RE.ja for Japanese.
Include oniguruma.h in your program. (Oniguruma API)See doc/API for Oniguruma API.
If you want to disable UChar type (== unsigned char) definitionin oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and theninclude oniguruma.h.
If you want to disable regex_t type definition in oniguruma.h,define ONIG_ESCAPE_REGEX_T_COLLISION and then include oniguruma.h.
Example of the compiling/linking command line in Unix or Cygwin,(prefix == /usr/local case)
cc sample.c -L/usr/local/lib -lonig
If you want to use static link library(onig_s.lib) in Win32,add option -DONIG_EXTERN=extern to C compiler.
File | Description |
---|---|
sample/callout.c | example of callouts |
sample/count.c | example of built-in callout *COUNT |
sample/echo.c | example of user defined callouts of name |
sample/encode.c | example of some encodings |
sample/listcap.c | example of the capture history |
sample/names.c | example of the named group callback |
sample/posix.c | POSIX API sample |
sample/regset.c | example of using RegSet API |
sample/scan.c | example of using onig_scan() |
sample/simple.c | example of the minimum (Oniguruma API) |
sample/sql.c | example of the variable meta characters |
sample/user_property.c | example of user defined Unicode property |
Test Programs
File | Description |
---|---|
sample/syntax.c | Perl, Java and ASIS syntax test. |
sample/crnl.c | --enable-crnl-as-line-terminator test |
File | Description |
---|---|
oniguruma.h | Oniguruma API header file (public) |
onig-config.in | configuration check program template |
regenc.h | character encodings framework header file |
regint.h | internal definitions |
regparse.h | internal definitions for regparse.c and regcomp.c |
regcomp.c | compiling and optimization functions |
regenc.c | character encodings framework |
regerror.c | error message function |
regext.c | extended API functions (deluxe version API) |
regexec.c | search and match functions |
regparse.c | parsing functions. |
regsyntax.c | pattern syntax functions and built-in syntax definitions |
regtrav.c | capture history tree data traverse functions |
regversion.c | version info function |
st.h | hash table functions header file |
st.c | hash table functions |
oniggnu.h | GNU regex API header file (public) |
reggnu.c | GNU regex API functions |
onigposix.h | POSIX API header file (public) |
regposerr.c | POSIX error message function |
regposix.c | POSIX API functions |
mktable.c | character type table generator |
ascii.c | ASCII encoding |
euc_jp.c | EUC-JP encoding |
euc_tw.c | EUC-TW encoding |
euc_kr.c | EUC-KR, EUC-CN encoding |
sjis.c | Shift_JIS encoding |
big5.c | Big5 encoding |
gb18030.c | GB18030 encoding |
koi8.c | KOI8 encoding |
koi8_r.c | KOI8-R encoding |
cp1251.c | CP1251 encoding |
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_4.c | ISO-8859-4 (Latin-4) |
iso8859_5.c | ISO-8859-5 (Cyrillic) |
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 or Turkish) |
iso8859_10.c | ISO-8859-10 (Latin-6 or Nordic) |
iso8859_11.c | ISO-8859-11 (Thai) |
iso8859_13.c | ISO-8859-13 (Latin-7 or Baltic Rim) |
iso8859_14.c | ISO-8859-14 (Latin-8 or Celtic) |
iso8859_15.c | ISO-8859-15 (Latin-9 or West European with Euro) |
iso8859_16.c | ISO-8859-16 (Latin-10) |
utf8.c | UTF-8 encoding |
utf16_be.c | UTF-16BE encoding |
utf16_le.c | UTF-16LE encoding |
utf32_be.c | UTF-32BE encoding |
utf32_le.c | UTF-32LE encoding |
unicode.c | common codes of Unicode encoding |
unicode_fold_data.c | Unicode folding data |
windows/testc.c | Test program for Windows (VC++) |
来源:https://www.24kplus.com/linux/1614.html CentOS 7/8 安装 oniguruma和oniguruma-devel 。解决 configure: error: Package requirements (oniguruma) were not met: Package 'oniguruma', required by 'virtual:world'
oniguruma是一个处理正则表达式的库,在编译安装php时,如果使用--enable-mbstring 参数, 开启mbstring扩展,则会出现这个错误。 原因:mbstring的正则功能需要oniguruma的支持,系统中却没有oniguruma库。 解决方法: 1、在'--enable-mbstring'参数后添加'--disable-mbregex'参数,意为不使用mbstring的正
oniguruma是一个处理正则表达式的库,在编译安装php时,如果使用–enable-mbstring 参数, 开启mbstring扩展,则会出现这个错误。 原因:mbstring的正则功能需要oniguruma的支持,系统中却没有oniguruma库。 解决方法: 1、在’–enable-mbstring’参数后添加’–disable-mbregex’参数,意为不使用mbstring的正则功能
安装所需的工具包 yum install -y gcc gcc-c++ make expat-devel autoconf automake 下载软件包 wget https://github.com/kkos/oniguruma/archive/v6.9.5_rev1.tar.gz -O oniguruma-6.9.5_rev1.tar.gz 解压软件包 tar -zxvf onigurum
一、环境: CentOS 7.7.1908 PHP 7.4.2 Oniguruma 6.9.4 二、问题: 安装PHP 7.4.x过程中泛起如下错误信息: …………………… checking whether to enable multibytestringsupport... yes checking whether to enable multibyte regex support (requ
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz tar -xvf oniguruma-6.9.4.tar.gz cd oniguruma-6.9.4/ ./autogen.sh ./configure --prefix=/usr --libdir=/lib64 //64
编译安装php7提示缺少组件oniguruma, 但安装完这个组件还是提示缺少这个组件,又安装了oniguruma-devel,然后可以了。
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz tar -xvf oniguruma-6.9.4.tar.gz cd oniguruma-6.9.4/ ./autogen.sh ./configure --prefix=/usr --libdir=/lib64 //6
一、oniguruma是什么? oniguruma是一个处理正则表达式的库,我们之所以需要安装它,是因为在安装php7.4的过程中,mbstring的正则表达式处理功能对这个包有依赖性,所以我们要先安装这个库。 开源源码地址: https://github.com/liuhongdi/ 二、下载解压配置与安装 安装依赖包 yum install autoconf automake libtoo
编译安装php时,如果--enable-mbstring , 开启了mbstring扩展,需要这个正则处理库 centos yum install http://rpms.remirepo.net/enterprise/7/remi/x86_64//oniguruma5-6.9.4-1.el7.remi.x86_64.rpm yum install http://rpms.remirepo.n
oniguruma 是什么? oniguruma 是一个处理正则表达式的库,我们之所以需要安装它,是因为在安装 php 7.4 及其以上版本的过程中,mbstring 的正则表达式处理功能对这个包有依赖性,所以我们要先安装这个库。 首先通过 yum search oniguruma 命令搜索对应的缺失库,发现还未收录,因而采用源码编译的方式。 oniguruma github官方网站:https:
configure: error: Package requirements (oniguruma) were not met 在Centos8环境中配置PHP出现如上报错: 原因是没有安装配置oniguruma导致的 解决方法如下: 1、获取源码,2.并解压 wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O
在编译安装php时有时候会碰到如题所示的错误: Package 'oniguruma', required by 'virtual:world', not found 一般在编译php安装时,出现类似的错误只需要安装对应的devel包即可,比如在Centos下,只需要yum install oniguruma-devel就可以解决; 然而,yum中没有这个包,需要去第三方找,网上大部分的解决方案是