====== std.regex ====== Reguläre Ausdrücke mit NFA-basiertem Bytecode-Interpreter. Unterstützt Match (ganzer String), Search (erstes Vorkommen), Replace und Capture-Gruppen (bis zu 32, ''CaptureText''). Flags: IGNORE_CASE (Groß-/Kleinschreibung ignorieren), ANCHORED (nur am Anfang), MULTILINE ('''^'''/''$'' matchen Zeilengrenzen). Sowohl einfache API (''Match'', ''Search'', ''Replace'') als auch kompilierte Varianten für Wiederverwendung. Einsatzbereiche: Eingabevalidierung (E-Mail, Telefon, URLs), Log-Parsing, Template-Ersetzung, Protokoll-Analyse, SEO-Content-Analyse. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Imports ===== * ''[[lyx_-_programmiersprache:units:string|std.string]]'' ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''isAlpha(c: int64): int64'' | pub | Prüft ob Zeichen ein Buchstabe ist | | ''isDigit(c: int64): int64'' | pub | Prüft ob Zeichen eine Ziffer ist | | ''isAlnum(c: int64): int64'' | pub | Prüft ob Zeichen alphanumerisch ist | | ''isWhitespace(c: int64): int64'' | pub | Prüft ob Zeichen ein Leerzeichen ist | | ''isWordChar(c: int64): int64'' | pub | Prüft ob Zeichen ein Wortzeichen ist | | ''atomLen(pattern: pchar, start: int64): int64'' | pub | Berechnet Länge eines Regex-Atoms | | ''atomMatches(pattern: pchar, start: int64, c: int64): int64'' | pub | Prüft ob Zeichen auf Regex-Atom passt | | ''matchHere(pattern: pchar, pIdx: int64, text: pchar, tIdx: int64): int64'' | pub | Interner rekursiver Regex-Matcher | | ''regexSearchFrom(pattern: pchar, text: pchar, startIdx: int64): int64'' | pub | Sucht Muster ab gegebenem Startindex | | ''_RegexMatch(pattern: pchar, text: pchar): bool'' | pub | Interne Match-Implementierung | | ''_RegexSearch(pattern: pchar, text: pchar): int64'' | pub | Interne Search-Implementierung | | ''_RegexReplace(pattern: pchar, text: pchar, replacement: pchar): int64'' | pub | Interne Replace-Implementierung | | ''Match(pattern: pchar, text: pchar): bool'' | pub | Prüft ob gesamter Text zum Muster passt | | ''Search(pattern: pchar, text: pchar): int64'' | pub | Sucht erstes Vorkommen des Musters | | ''Replace(pattern: pchar, text: pchar, replacement: pchar): int64'' | pub | Ersetzt erstes Vorkommen durch Ersatztext | ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''REGEX_FLAG_IGNORE_CASE'' | ''int64'' | ''1'' | priv | | ''REGEX_FLAG_ANCHORED'' | ''int64'' | ''2'' | priv | | ''REGEX_FLAG_MULTILINE'' | ''int64'' | ''4'' | priv | | ''REGEX_MAX_CAPTURE_SLOTS'' | ''int64'' | ''32'' | priv | | ''REGEX_STACK_MAX'' | ''int64'' | ''256'' | priv | ---- ===== Typen ===== ==== RegexProgramInfo (struct) ==== ^ Feld ^ Typ ^ | ''instrStart'' | ''int64'' | | ''classCount'' | ''int64'' | | ''captureSlots'' | ''int64'' | ==== RegexFrame (struct) ==== ^ Feld ^ Typ ^ | ''pc'' | ''int64'' | | ''pos'' | ''int64'' | | ''caps'' | ''array[32]int64'' | ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''regexReadU8(prog: pchar, idx: int64): int64'' | priv | Liest ein Byte aus kompiliertem Bytecode | | ''regexReadU32(prog: pchar, idx: int64): int64'' | priv | Liest 4 Bytes aus kompiliertem Bytecode | | ''regexFoldChar(c: int64): int64'' | priv | Wandelt Zeichen für Case-Insensitive-Matching um | | ''regexParseInfo(prog: pchar): RegexProgramInfo'' | priv | Liest Metadaten aus kompiliertem Regex-Programm | | ''regexClassOffset(prog: pchar, classIndex: int64): int64'' | priv | Berechnet Offset einer Zeichenklasse im Bytecode | | ''regexClassMatches(prog: pchar, classIndex: int64, c: int64, flags: int64,'' | priv | Prüft ob Zeichen zu Zeichenklasse passt | | ''regexRunAt(prog: pchar, progLen: int64, info: RegexProgramInfo, text: pchar,'' | priv | Führt NFA-Interpreter an gegebener Position aus | | ''RegexSearchCompiledEx(prog: pchar, progLen: int64, text: pchar,'' | pub | Sucht in Text mit Flags und Capture-Gruppen | | ''RegexMatchCompiledEx(prog: pchar, progLen: int64, text: pchar,'' | pub | Matcht gesamten Text mit Flags und Captures | | ''RegexSearchCompiled(prog: pchar, progLen: int64, text: pchar): int64'' | pub | Sucht erstes Vorkommen mit kompiliertem Programm | | ''RegexMatchCompiled(prog: pchar, progLen: int64, text: pchar): bool'' | pub | Matcht gesamten Text mit kompiliertem Programm | | ''RegexReplaceCompiledEx(prog: pchar, progLen: int64, text: pchar,'' | pub | Ersetzt Treffer mit Flags und kompiliertem Programm | | ''RegexReplaceCompiled(prog: pchar, progLen: int64, text: pchar,'' | pub | Ersetzt Treffer mit kompiliertem Programm | | ''RegexMatchEx(pattern: pchar, text: pchar, flags: int64): bool'' | pub | Matcht Text mit Muster und Flags | | ''RegexSearchEx(pattern: pchar, text: pchar, flags: int64): int64'' | pub | Sucht Muster in Text mit Flags | | ''RegexReplaceEx(pattern: pchar, text: pchar, replacement: pchar,'' | pub | Ersetzt Treffer mit Flags | | ''RegexReplaceInto(dest: pchar, pattern: pchar, text: pchar,'' | pub | Schreibt Ergebnis in vorhandenen Puffer | | ''RegexCaptureCount(): int64'' | pub | Gibt Anzahl der letzten Capture-Gruppen zurück | | ''RegexCaptureStart(group: int64): int64'' | pub | Gibt Startposition einer Capture-Gruppe zurück | | ''RegexCaptureEnd(group: int64): int64'' | pub | Gibt Endposition einer Capture-Gruppe zurück | | ''RegexCaptureText(dest: pchar, text: pchar, group: int64): pchar'' | pub | Kopiert Capture-Gruppen-Text in Puffer | | ''MatchEx(pattern: pchar, text: pchar, flags: int64): bool'' | pub | Kurzform von RegexMatchEx | | ''SearchEx(pattern: pchar, text: pchar, flags: int64): int64'' | pub | Kurzform von RegexSearchEx | | ''ReplaceEx(pattern: pchar, text: pchar, replacement: pchar,'' | pub | Kurzform von RegexReplaceEx | | ''ReplaceInto(dest: pchar, pattern: pchar, text: pchar,'' | pub | Kurzform von RegexReplaceInto | | ''CaptureCount(): int64'' | pub | Kurzform von RegexCaptureCount | | ''CaptureStart(group: int64): int64'' | pub | Kurzform von RegexCaptureStart | | ''CaptureEnd(group: int64): int64'' | pub | Kurzform von RegexCaptureEnd | | ''CaptureText(dest: pchar, text: pchar, group: int64): pchar'' | pub | Kurzform von RegexCaptureText |