https://github.com/kkos/oniguruma
Oniguruma ist eine moderne und flexible Bibliothek für reguläre Ausdrücke. Es umfasst Funktionen aus verschiedenen Implementierungen regulärer Ausdrücke, die traditionell in verschiedenen Sprachen vorhanden sind.
Die Zeichenkodierung kann pro regulärem Ausdrucksobjekt angegeben werden.
Unterstützte Zeichenkodierungen:
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
Wenn Sie bei der Verwendung des Konfigurationsskripts die POSIX-API in einer früheren Version aktiviert haben (standardmäßig in 6.9.5 deaktiviert) und eine Anwendungsbinärkompatibilität mit der POSIX-API benötigen, geben Sie „--enable-binary-kompatible-posix-api=“ an ja“ statt „--enable-posix-api=yes“. Ab 6.9.6 unterstützt „--enable-posix-api=yes“ nur die Kompatibilität auf Quellebene für 6.9.5 und früher über die POSIX-API. (Ausgabe Nr. 210)
BSD-Lizenz.
dnf install oniguruma-devel
yum install oniguruma
apt install libonig5
pacman -S oniguruma
zypper install oniguruma
autoreconf -vfi (* Fall: Konfigurationsskript wurde nicht gefunden.)
./konfigurieren
machen
make installieren
deinstallieren
deinstallieren
Konfigurationsprüfung
onig-config --cflags onig-config --libs onig-config --prefix onig-config --exec-prefix
Bibliothek erstellen
.make_win.bat
onig_s.lib: statische Linkbibliothek onig.dll: dynamische Linkbibliothek
Testprogramme erstellen
.make_win.bat All-Test
Alternativ können Sie Oniguruma mit dem Abhängigkeitsmanager vcpkg erstellen und installieren:
Der Oniguruma-Port in vcpkg wird von Microsoft-Teammitgliedern und Community-Mitwirkenden auf dem neuesten Stand gehalten. Wenn die Version veraltet ist, erstellen Sie bitte einen Issue oder Pull Request im vcpkg-Repository.
Siehe doc/RE oder doc/RE.ja für Japanisch.
Binden Sie oniguruma.h in Ihr Programm ein. (Oniguruma API) Siehe doc/API für die Oniguruma API.
Wenn Sie die Definition des UChar-Typs (== unsigned char) in oniguruma.h deaktivieren möchten, definieren Sie ONIG_ESCAPE_UCHAR_COLLISION und schließen Sie dann oniguruma.h ein.
Wenn Sie die Typdefinition regex_t in oniguruma.h deaktivieren möchten, definieren Sie ONIG_ESCAPE_REGEX_T_COLLISION und schließen Sie dann oniguruma.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 -lonig
Wenn Sie die statische Linkbibliothek (onig_s.lib) in Win32 verwenden möchten, fügen Sie dem C-Compiler die Option -DONIG_EXTERN=extern hinzu.
Datei | Beschreibung |
---|---|
Beispiel/Callout.c | Beispiel für Callouts |
Probe/Anzahl.c | Beispiel für integriertes Callout *COUNT |
probe/echo.c | Beispiel für benutzerdefinierte Namensaufrufe |
sample/encode.c | Beispiel einiger Kodierungen |
sample/listcap.c | Beispiel für den Erfassungsverlauf |
Beispiel/Namen.c | Beispiel für den benannten Gruppenrückruf |
sample/posix.c | POSIX-API-Beispiel |
sample/regset.c | Beispiel für die Verwendung der RegSet-API |
Probe/Scan.c | Beispiel für die Verwendung von onig_scan() |
Beispiel/einfach.c | Beispiel für das Minimum (Oniguruma API) |
sample/sql.c | Beispiel für die variablen Metazeichen |
sample/user_property.c | Beispiel einer benutzerdefinierten Unicode-Eigenschaft |
Testprogramme
Datei | Beschreibung |
---|---|
sample/syntax.c | Perl-, Java- und ASIS-Syntaxtest. |
sample/crnl.c | --enable-crnl-as-line-terminator-Test |
Datei | Beschreibung |
---|---|
oniguruma.h | Oniguruma API-Header-Datei (öffentlich) |
onig-config.in | Vorlage für ein Konfigurationsprüfungsprogramm |
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 Syntaxdefinitionen |
regtrav.c | Erfassen Sie Verlaufsbaumdaten-Traverse-Funktionen |
regversion.c | Versionsinfofunktion |
st.h | Header-Datei für Hash-Tabellenfunktionen |
st.c | Hash-Tabellenfunktionen |
oniggnu.h | GNU-Regex-API-Headerdatei (öffentlich) |
reggnu.c | GNU-Regex-API-Funktionen |
onigposix.h | POSIX-API-Header-Datei (öffentlich) |
regposerr.c | POSIX-Fehlermeldungsfunktion |
regposix.c | POSIX-API-Funktionen |
mktable.c | Generator für Zeichentyptabellen |
ascii.c | ASCII-Kodierung |
euc_jp.c | EUC-JP-Kodierung |
euc_tw.c | EUC-TW-Kodierung |
euc_kr.c | EUC-KR, EUC-CN-Kodierung |
sjis.c | Shift_JIS-Kodierung |
big5.c | Big5-Kodierung |
gb18030.c | GB18030-Kodierung |
koi8.c | KOI8-Kodierung |
koi8_r.c | KOI8-R-Kodierung |
cp1251.c | CP1251-Kodierung |
iso8859_1.c | ISO-8859-1 (Latein-1) |
iso8859_2.c | ISO-8859-2 (Latein-2) |
iso8859_3.c | ISO-8859-3 (Latein-3) |
iso8859_4.c | ISO-8859-4 (Latein-4) |
iso8859_5.c | ISO-8859-5 (Kyrillisch) |
iso8859_6.c | ISO-8859-6 (Arabisch) |
iso8859_7.c | ISO-8859-7 (Griechisch) |
iso8859_8.c | ISO-8859-8 (Hebräisch) |
iso8859_9.c | ISO-8859-9 (Latein-5 oder Türkisch) |
iso8859_10.c | ISO-8859-10 (Latein-6 oder Nordisch) |
iso8859_11.c | ISO-8859-11 (Thailändisch) |
iso8859_13.c | ISO-8859-13 (Latin-7 oder Baltic Rim) |
iso8859_14.c | ISO-8859-14 (Latein-8 oder Keltisch) |
iso8859_15.c | ISO-8859-15 (Latein-9 oder Westeuropäisch mit Euro) |
iso8859_16.c | ISO-8859-16 (Latein-10) |
utf8.c | UTF-8-Kodierung |
utf16_be.c | UTF-16BE-Kodierung |
utf16_le.c | UTF-16LE-Kodierung |
utf32_be.c | UTF-32BE-Kodierung |
utf32_le.c | UTF-32LE-Kodierung |
unicode.c | gängige Codes der Unicode-Kodierung |
unicode_fold_data.c | Unicode-Faltdaten |
Windows/testc.c | Testprogramm für Windows (VC++) |