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- Compatible-posix-api=를 지정하십시오. "--enable-posix-api=yes" 대신 "yes"를 선택하세요. 6.9.6부터 "--enable-posix-api=yes"는 POSIX API에 대해 6.9.5 이하 버전에 대한 소스 수준 호환성만 지원합니다. (이슈 #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) Oniguruma API에 대한 문서/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 | 콜아웃의 예 |
샘플/count.c | 내장 콜아웃의 예 *COUNT |
샘플/echo.c | 사용자 정의 이름 설명선의 예 |
샘플/encode.c | 일부 인코딩의 예 |
샘플/listcap.c | 캡처 이력의 예 |
샘플/names.c | 명명된 그룹 콜백의 예 |
샘플/posix.c | POSIX API 샘플 |
샘플/regset.c | RegSet API 사용 예 |
샘플/scan.c | onig_scan() 사용 예 |
샘플/simple.c | 최소값의 예(Oniguruma API) |
샘플/sql.c | 변수 메타 문자의 예 |
샘플/user_property.c | 사용자 정의 유니코드 속성의 예 |
테스트 프로그램
파일 | 설명 |
---|---|
샘플/syntax.c | Perl, Java 및 ASIS 구문 테스트. |
샘플/crnl.c | --enable-crnl-as-line-terminator 테스트 |
파일 | 설명 |
---|---|
오니구루마.h | Oniguruma API 헤더 파일(공개) |
onig-config.in | 구성 확인 프로그램 템플릿 |
regenc.h | 문자 인코딩 프레임워크 헤더 파일 |
regint.h | 내부 정의 |
regparse.h | regparse.c 및 regcomp.c에 대한 내부 정의 |
regcomp.c | 컴파일 및 최적화 기능 |
regenc.c | 문자 인코딩 프레임워크 |
regerror.c | 오류 메시지 기능 |
regext.c | 확장 API 기능(디럭스 버전 API) |
regexec.c | 검색 및 일치 기능 |
regparse.c | 구문 분석 기능. |
regsyntax.c | 패턴 구문 함수 및 내장 구문 정의 |
regtrav.c | 히스토리 트리 데이터 트래버스 기능 캡처 |
regversion.c | 버전 정보 기능 |
성.시간 | 해시 테이블 함수 헤더 파일 |
st.c | 해시 테이블 함수 |
oniggnu.h | GNU 정규식 API 헤더 파일(공개) |
reggnu.c | GNU 정규식 API 함수 |
onigposix.h | POSIX API 헤더 파일(공개) |
regposrr.c | POSIX 오류 메시지 기능 |
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 인코딩 |
iso8859_1.c | ISO-8859-1(라틴어-1) |
iso8859_2.c | ISO-8859-2(Latin-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 또는 북유럽) |
iso8859_11.c | ISO-8859-11(태국어) |
iso8859_13.c | ISO-8859-13(Latin-7 또는 발틱 림) |
iso8859_14.c | ISO-8859-14(Latin-8 또는 Celtic) |
iso8859_15.c | ISO-8859-15(Latin-9 또는 서유럽(유로 포함)) |
iso8859_16.c | ISO-8859-16(라틴어-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_fold_data.c | 유니코드 접기 데이터 |
창/testc.c | Windows용 테스트 프로그램(VC++) |