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/유니코드)
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/유니코드)
mingw32-make -f win32/Makefile.mingw test
실행합니다. 테스트를 실행하려면 Python(Onigmo와 동일한 비트 사용)이 필요합니다.
MSYS2에서 MinGW를 사용하는 경우 ./configure
사용하여 Unix처럼 make
수도 있습니다. 이 경우 DLL 이름에는 API 버전 번호가 포함됩니다. 예:
libonigmo-6.dll
일본어는 doc/RE 또는 doc/RE.ja를 참조하세요.
프로그램에 onigmo.h를 포함시키십시오. (Onigmo API) Onigmo API에 대한 문서/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
옵션을 추가하세요.
파일 | 설명 |
---|---|
샘플/simple.c | 최소값의 예(Onigmo API) |
샘플/names.c | 명명된 그룹 콜백의 예. |
샘플/encode.c | 일부 인코딩의 예 |
샘플/listcap.c | 캡처 내역의 예입니다. |
샘플/posix.c | POSIX API 샘플. |
샘플/sql.c | 변수 메타 문자의 예. |
테스트 프로그램
파일 | 설명 |
---|---|
샘플/syntax.c | Perl, Java 및 ASIS 구문 테스트. |
샘플/crnl.c | CRNL 테스트 |
파일 | 설명 |
---|---|
onigmo.h | Onigmo API 헤더 파일(공개) |
onigmo-config.in | 구성 확인 프로그램 템플릿 |
onigmo.py | Python용 Onigmo 모듈 |
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 | 해시 테이블 함수 |
onigmognu.h | GNU 정규식 API 헤더 파일(공개) |
reggnu.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(라틴어-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 또는 북유럽) |
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 또는 Celtic) |
enc/iso_8859_15.c | ISO-8859-15(Latin-9 또는 서유럽(유로 포함)) |
enc/iso_8859_16.c | ISO-8859-16(라틴어-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 | 유니코드 인코딩의 공통 코드 |
enc/유니코드/ | 유니코드 대소문자 접기 데이터 및 속성 데이터 |
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) 인코딩(Baltic Rim) |
enc/cp949.c | CP949 인코딩(Ruby에서만 사용됨) |
enc/emacs_mule.c | Emacs 내부 인코딩(Ruby에서만 사용됨) |
enc/gb2312.c | GB2312 인코딩(Ruby에서만 사용됨) |
enc/us_ascii.c | US-ASCII 인코딩(Ruby에서만 사용됨) |
win32/메이크파일 | Win32용 메이크파일(VC++) |
win32/Makefile.mingw | Win32용 메이크파일(MinGW) |
win32/config.h | Win32용 config.h |
win32/onigmo.rc | Win32용 리소스 파일 |