https://github.com/k-takata/Onigmo
Onigmo ist eine von Oniguruma abgeleitete Bibliothek für reguläre Ausdrücke. Der Schwerpunkt liegt auf der Unterstützung neuer Ausdrücke wie K
, R
, (?(cond)yes|no)
usw., die in Perl 5.10+ unterstützt werden.
Da Onigmo als Standard-Regexp-Bibliothek von Ruby 2.0 oder höher verwendet wird, werden viele Patches von Ruby 2.x zurückportiert.
Siehe auch die Wiki-Seite: https://github.com/k-takata/Onigmo/wiki
BSD-Lizenz.
./autogen.sh
(Wenn configure
nicht existiert.)./configure
make
make install
prüfen
Test machen
deinstallieren
deinstallieren
Konfigurationsprüfung
onigmo-config --cflags onigmo-config --libs onigmo-config --prefix onigmo-config --exec-prefix
Führen Sie build_nmake.cmd
aus. Als Arbeits-/Ausgabeverzeichnis wird build_x64
oder build_x86
verwendet.
onigmo_s.lib: static link library
onigmo.lib: import library for dynamic link
onigmo.dll: dynamic link library
Test (ASCII/Shift_JIS/EUC-JP/Unicode)
Führen Sie build_nmake.cmd test
aus. Zum Ausführen der Tests wird Python (mit der gleichen Bitrate wie Onigmo) benötigt.
Führen Sie mingw32-make -f win32/Makefile.mingw
aus. build_x86-64
, build_i686
usw. werden als Arbeits-/Ausgabeverzeichnis verwendet.
libonigmo.a: static link library
libonigmo.dll.a: import library for dynamic link
onigmo.dll: dynamic link library
Test (ASCII/Shift_JIS/EUC-JP/Unicode)
Führen Sie mingw32-make -f win32/Makefile.mingw test
aus. Zum Ausführen der Tests wird Python (mit der gleichen Bitrate wie Onigmo) benötigt.
Wenn Sie MinGW auf MSYS2 verwenden, können Sie auch ./configure
und make
wie Unix verwenden. In diesem Fall hat der DLL-Name die API-Versionsnummer. Z.B:
libonigmo-6.dll
Für Japanisch siehe doc/RE oder doc/RE.ja.
Binden Sie onigmo.h in Ihr Programm ein. (Onigmo API) Siehe doc/API für Onigmo API.
Wenn Sie die Definition UChar
Typs (== unsigned char
) in onigmo.h deaktivieren möchten, definieren Sie ONIG_ESCAPE_UCHAR_COLLISION
und schließen Sie dann onigmo.h ein.
Wenn Sie die Typdefinition regex_t
in onigmo.h deaktivieren möchten, definieren Sie ONIG_ESCAPE_REGEX_T_COLLISION
und schließen Sie dann onigmo.h ein.
Beispiel für die Kompilierungs-/Verknüpfungsbefehlszeile in Unix oder Cygwin (Präfix == /usr/local-Fall)
cc sample.c -L/usr/local/lib -lonigmo
Wenn Sie die statische Linkbibliothek (onigmo_s.lib) in Win32 verwenden möchten, fügen Sie dem C-Compiler die Option -DONIG_EXTERN=extern
hinzu.
Datei | Beschreibung |
---|---|
Beispiel/einfach.c | Beispiel für das Minimum (Onigmo API) |
Beispiel/Namen.c | Beispiel für den benannten Gruppenrückruf. |
sample/encode.c | Beispiel einiger Kodierungen. |
sample/listcap.c | Beispiel für den Erfassungsverlauf. |
sample/posix.c | POSIX-API-Beispiel. |
sample/sql.c | Beispiel für die variablen Metazeichen. |
Testprogramme
Datei | Beschreibung |
---|---|
sample/syntax.c | Perl-, Java- und ASIS-Syntaxtest. |
sample/crnl.c | CRNL-Test |
Datei | Beschreibung |
---|---|
onigmo.h | Onigmo API-Header-Datei (öffentlich) |
onigmo-config.in | Vorlage für ein Konfigurationsprüfungsprogramm |
onigmo.py | Onigmo-Modul für Python |
regenc.h | Header-Datei des Zeichenkodierungs-Frameworks |
regint.h | interne Definitionen |
regparse.h | interne Definitionen für regparse.c und regcomp.c |
regcomp.c | Kompilierungs- und Optimierungsfunktionen |
regenc.c | Rahmen für Zeichenkodierungen |
regerror.c | Fehlermeldungsfunktion |
regext.c | erweiterte API-Funktionen (Deluxe-Version API) |
regexec.c | Such- und Matchfunktionen |
regparse.c | Parsing-Funktionen. |
regsyntax.c | Mustersyntaxfunktionen und integrierte Syntaxdefinition |
regtrav.c | Erfassen Sie Verlaufsbaumdaten-Traverse-Funktionen |
regversion.c | Versionsinfofunktion |
st.h | Header-Datei für Hash-Tabellenfunktionen |
st.c | Hash-Tabellenfunktionen |
onigmognu.h | GNU-Regex-API-Headerdatei (öffentlich) |
reggnu.c | GNU-Regex-API-Funktionen |
onigmoposix.h | POSIX-API-Header-Datei (öffentlich) |
regposerr.c | POSIX-Fehlermeldungsfunktion |
regposix.c | POSIX-API-Funktionen |
enc/mktable.c | Generator für Zeichentyptabellen |
enc/ascii.c | ASCII-8BIT-Kodierung |
enc/jis/ | JIS-Eigenschaftsdaten |
enc/euc_jp.c | EUC-JP-Kodierung |
enc/euc_tw.c | EUC-TW-Kodierung |
enc/euc_kr.c | EUC-KR, EUC-CN-Kodierung |
enc/shift_jis.c | Shift_JIS-Codierung |
enc/shift_jis.h | Gemeinsamer Teil der Shift_JIS- und Windows-31J-Kodierung |
enc/windows_31j.c | Windows-31J (CP932)-Kodierung |
enc/big5.c | Big5-Kodierung |
enc/gb18030.c | GB18030-Kodierung |
enc/gbk.c | GBK-Kodierung |
enc/koi8_r.c | KOI8-R-Kodierung |
enc/koi8_u.c | KOI8-U-Kodierung |
enc/iso_8859.h | gemeinsame Definition der ISO-8859-Kodierung |
enc/iso_8859_1.c | ISO-8859-1 (Latein-1) |
enc/iso_8859_2.c | ISO-8859-2 (Latein-2) |
enc/iso_8859_3.c | ISO-8859-3 (Latein-3) |
enc/iso_8859_4.c | ISO-8859-4 (Latein-4) |
enc/iso_8859_5.c | ISO-8859-5 (Kyrillisch) |
enc/iso_8859_6.c | ISO-8859-6 (Arabisch) |
enc/iso_8859_7.c | ISO-8859-7 (Griechisch) |
enc/iso_8859_8.c | ISO-8859-8 (Hebräisch) |
enc/iso_8859_9.c | ISO-8859-9 (Latein-5 oder Türkisch) |
enc/iso_8859_10.c | ISO-8859-10 (Latein-6 oder Nordisch) |
enc/iso_8859_11.c | ISO-8859-11 (Thailändisch) |
enc/iso_8859_13.c | ISO-8859-13 (Latin-7 oder Baltic Rim) |
enc/iso_8859_14.c | ISO-8859-14 (Latein-8 oder Keltisch) |
enc/iso_8859_15.c | ISO-8859-15 (Latein-9 oder Westeuropäisch mit Euro) |
enc/iso_8859_16.c | ISO-8859-16 (Latein-10) |
enc/utf_8.c | UTF-8-Kodierung |
enc/utf_16be.c | UTF-16BE-Kodierung |
enc/utf_16le.c | UTF-16LE-Kodierung |
enc/utf_32be.c | UTF-32BE-Kodierung |
enc/utf_32le.c | UTF-32LE-Kodierung |
enc/unicode.c | gängige Codes der Unicode-Kodierung |
enc/unicode/ | Unicode-Faltungsdaten und Eigenschaftsdaten |
enc/windows_1250.c | Windows-1250 (CP1250)-Kodierung (Mittel-/Osteuropa) |
enc/windows_1251.c | Windows-1251 (CP1251)-Kodierung (Kyrillisch) |
enc/windows_1252.c | Windows-1252 (CP1252)-Kodierung (Latein) |
enc/windows_1253.c | Windows-1253 (CP1253)-Kodierung (Griechisch) |
enc/windows_1254.c | Windows-1254 (CP1254)-Kodierung (Türkisch) |
enc/windows_1257.c | Windows-1257 (CP1257)-Kodierung (Baltic Rim) |
enc/cp949.c | CP949-Kodierung (wird nur in Ruby verwendet) |
enc/emacs_mule.c | Interne Emacs-Kodierung (wird nur in Ruby verwendet) |
enc/gb2312.c | GB2312-Kodierung (wird nur in Ruby verwendet) |
enc/us_ascii.c | US-ASCII-Kodierung (wird nur in Ruby verwendet) |
win32/Makefile | Makefile für Win32 (VC++) |
win32/Makefile.mingw | Makefile für Win32 (MinGW) |
win32/config.h | config.h für Win32 |
win32/onigmo.rc | Ressourcendatei für Win32 |