Thema: golang
-
Regex-Dialekte: BRE/ERE, PCRE2, RE2, JavaScript, Python und .NET im Vergleich
Die Zeichen + ? | ( ) { } sind literal oder Sonderzeichen, je nachdem, ob ein Tool POSIX BRE oder ERE verwendet. Lookaround und Rückwärtsreferenzen unterstützen manche Engines, RE2 lehnt sie bewusst ab, um Matching in linearer Zeit zu garantieren. Benannte Gruppen gibt es in drei Schreibweisen, die die Engines in unterschiedlichen Kombinationen akzeptieren.
-
Proxy-Umgebungsvariablen in curl, requests, Go, Java, Node und wget
curl verwirft die grossgeschriebene Form HTTP_PROXY bewusst (wegen CGI-Injection), Python requests akzeptiert sie ausserhalb von CGI. Ein führender Punkt in NO_PROXY begrenzt in Gos httpproxy den Treffer auf Subdomains, curl ignoriert den Punkt und erfasst auch die blanke Domain. Node-fetch ignoriert Proxy-Variablen, solange NODE_USE_ENV_PROXY oder ein ProxyAgent nicht eingerichtet ist.
-
Dauer- und Intervall-Strings: ISO 8601, Go ParseDuration, systemd, Prometheus, PostgreSQL und .NET TimeSpan
PT1H30M, 1h30m, '1h 30min' und 01:30:00 können dieselbe Zeitspanne beschreiben, doch jeder Parser akzeptiert ein anderes Alphabet von Einheitenkürzeln und weist alles andere zurück. Ein zwischen Systemen kopierter Dauer-String lässt sich deshalb oft schlicht nicht parsen.
-
Formatierungs-Token für Datum und Uhrzeit: strftime, Java, Go, .NET sowie Moment/date-fns im Vergleich
Derselbe Buchstabe bedeutet in Formatierungsbibliotheken Unterschiedliches: Das grosse Y in Java steht für das wochenbasierte Jahr, nicht für das Kalenderjahr, und D bezeichnet in Java und date-fns den Tag des Jahres, in Moment dagegen den Tag des Monats. Eine Token-Tabelle zum Prüfen, bevor ein generierter Formatstring übernommen wird.
Maschinenlesbar: JSON