30+ Funktionen Standard
PBXB64 V18 verbindet 30+ eingebaute String-Funktionen mit EVAL$, StringX-Vergleichen, Wildcards, Suche, Ersetzung und REGEX-Helfern. ANSI- und Unicode-Operationen nutzen dieselben Intrinsics: LEN, LEFT$, RIGHT$, MID$, MID$-Zuweisung, INSTR, UCASE$, LCASE$, TRIM$, LSET und RSET arbeiten sowohl mit STRING als auch mit WSTRING.
REGEXPR 1.25 Regular Expressions
PBXB64 V18 stellt die integrierte REGEXPR-1.25-Engine über PB-kompatible Anweisungen und StringX-Helfer bereit. Sie unterstützt Gruppen und Rückverweise, begrenzte Quantifizierer, Alternativen, Wortgrenzen, Zeichenklassen, gierige und kürzeste Treffer, Groß-/Kleinschreibungssteuerung, binärsichere Zielstrings, Trefferpositionen, Capture-Texte und globale Ersetzungen.
Erfasste Daten extrahieren
Ein Ausdruck findet den Treffer und liefert Capture-Gruppe 1. Manuelles Scannen, Trennzeichen-Zählen und eigener Parserzustand entfallen.
Jeden Treffer umformatieren
$0, $1 und Referenzen im Stil ${1} machen strukturierte Ersetzungen kompakt. Die Ersetzung verarbeitet alle Treffer.
Position und Länge erhalten
Die Statement-Form liefert 1-basierte Position und Länge. Bestehender PB-Code kann danach mit MID$ fortfahren oder die Offsets in einem Parser verwenden.
Ersetzung im PB-Dialekt
Die Statement-Syntax unterstützt PB-Tags von \00 bis \99 und liefert neben dem Ergebnis auch die nächste Position.
ANSI String-Funktionen
Vollständige ANSI-String-API: LEN, LEFT$, RIGHT$, MID$, INSTR, UCASE$, LCASE$, TRIM$, LTRIM$, RTRIM$, SPACE$, STRING$, CHOOSE$, FORMAT$, STR$, VAL, HEX$, OCT$, BIN$.
WSTRING - Wide-Character-Strings
Vollständiger Unicode-Support ohne Sonderbefehle: LEN, LEFT$, RIGHT$, MID$, INSTR, UCASE$, LCASE$ und TRIM$ arbeiten direkt mit WSTRING. UTF-16-Encoding, korrekte Längen-Zählung und BYREF-Übergabe.
Keine separaten W-Befehle nötig: LEN, LEFT$, RIGHT$, MID$, INSTR, UCASE$, LCASE$ und TRIM$ erkennen WSTRING automatisch. Korrekte Zeichen-Zählung (nicht Byte-Zählung) für UTF-16-Inhalt.
LSET / RSET - Feste-Breiten-Auffüllung
LSET und RSET sind echte Implementierungen (keine Stubs), die links-bündige und rechts-bündige Festbreiten-Strings erzeugen. Auch: CSET/CSET$ für Zentrierung.
BYREF-String-Parameter
Strings, die BYREF übergeben werden, werden korrekt behandelt mit caller-owned Lebenszyklus und GEP-basiertem Adressieren.
BYREF-String-Parameter übergeben die Adresse (nicht den Wert), sodass der Callee den String des Callers modifizieren kann. String-Cleanup ist caller-owned, verhindert Double-Free.