Zeichen-Escaping und Platzhalter
Entschärfung von Sonderzeichen in CSVfox Befehlen
Warum einige Zeichen auslassen?
Verstecken von Sonderzeichen vor der Auflösung von Ausdrücken
Es gibt eine Handvoll Zeichen, die im Kontext von CSVfox Befehlen bzw. Kommandozeilen- oder Shell-Parametern eine besondere Bedeutung haben.
Wenn Sie eines dieser Sonderzeichen als Literale im Text oder Ausdruck verwenden müssen, muss es "escaped" werden. Dies verhindert eine Fehlinterpretation des Zeichens, wenn der Ausdruck von der Anwendung aufgelöst wird. Es ist dann vor der Interpretation als Sonderzeichen verborgen.
Das Escaping wird schließlich entfernt, und das beabsichtigte Zeichen bleibt erhalten.
Escaping von Zeichen
Das Escaping eines Zeichens erfolgt durch Voranstellen eines Backslash (\) vor dem Zeichen.
Jedes der Sonderzeichen in der folgenden Tabelle kann durch die Eingabe eines Backslashs vor dem Zeichen vor einer fehlerhaften Auflösung "versteckt" werden.Beispiel:
Dieser Ausdruck:
Aber dieser Ausdruck:
Für einen buchstäblichen Backslash "\" muss der Backslash selbst dupliziert werden:
Tabellen der betreffenden Zeichen
Es gibt verschiedene Gründe, warum ein Zeichen nicht direkt in den Befehl eingegeben werden kann.
Interpretierte Zeichen
Diese Zeichen sind häufig Teil der CSVfox Befehlssyntax. Sie werden ausgeblendet, damit sie in wörtlichem Text verwendet werden können, ohne den Befehl selbst zu beeinträchtigen. Technisch gesehen, werden sie vor dem Befehlsinterpreter "versteckt" und später wieder "aufgedeckt".
Sequenz | Zeichen | Warum? |
---|---|---|
\[ | [ | Beginn der Spalte oder Variablenbezeichner |
\] | ] | Ende des Spalten- oder Variablenbezeichners |
\( | ( | Beginn eines numerischen Ausdrucks |
\) | ) | Ende eines numerischen Ausdrucks |
\{ | { | Beginn eines Textausdrucks |
\} | } | Ende eines Textausdrucks |
\< | < | Operator, siehe auch \L |
\> | > | Operator, siehe auch \G |
\\ | \ | Backslash, verwendet für "escaping" |
\/ | / | Begrenzungszeichen für Operatoren, Befehle oder Argumentlisten |
\= | = | Zuweisungsoperator, Befehls-/Argumententrennzeichen |
\* | * | Operator |
\# | # | Operator |
\@ | @ | Operator oder Trennzeichen für Argumentausdrücke |
\, | , | Teil eines Spaltenlistenausdrucks |
\- | - | Teil eines Spaltenlistenausdrucks |
Sequenzen von Steuerzeichen
Die folgenden Sequenzen können in jedem literalen Text, in der Befehlszeile, in Bedingungen und in Ausdrücken verwendet werden. Sie werden beim Auflösen in die entsprechenden Steuerzeichen umgewandelt.
Diese Sequenzen werden NICHT konvertiert
- bei Dateinamenparametern der Befehle +in, -out, %merge, %log und %params. Der Grund dafür ist, dass die Sequenz ein regulärer Teil des Dateipfads sein könnte.
- im Muster des regulären Ausdrucks im Befehl ±regex und im rechten Operanden der Regex-Regel "@" von Bedingungen.
Sequenz | Zeichen | Name |
---|---|---|
\a | 0x07 | Glockenalarm |
\b | 0x08 | Rücktaste |
\t | 0x09 | Tabulator |
\n | 0x0A | Neue Zeile |
\v | 0x0B | Vertikaler Tabulator |
\f | 0x0C | Formularvorschub |
\r | 0x0D | Carriage Return |
\e | 0x1b | Escape (27) |
\s | 0x20 | Leerzeichen* |
\P | | | "Pipe" Zeichen* |
\L | < | Eingabe umleiten* |
\G | > | Ausgabe umleiten* |
* Diese Zeichen sind keine Steuerzeichen im eigentlichen Sinne, können aber in der Befehlszeile verwendet werden, um ein Leerzeichen, eine Pipe oder ein Umleitungssymbol einzufügen, das andernfalls das Argument trennen und ungültig machen würde.
Back References
Diese Zeichenfolgen kommen ausschließlich im Befehl ±regex als letzter Teil des Arguments "Original/Pattern/Replacement" vor.
Sie stehen für die passenden Rückverweise, die entsprechend dem Muster aus dem Original entnommen werden. Für reguläre Ausdrücke siehe auch https://en.wikipedia.org/wiki/Regular_expression
Die übereinstimmenden Gruppen werden im Ersetzungsteil durch referenziert:
wobei
Erweiterte Zeichenplatzhalter
Zweck
Um die Eingabe beliebiger literaler Zeichenwerte zu ermöglichen, die auf der Tastatur nicht verfügbar sind, wird ein spezieller erweiterter Zeichenplatzhalter unterstützt.
Er sieht wie folgt aus:
wobei X hexadezimale Ziffern von "0" bis "9", von "A" bis "F" und von "a" bis "f" sind.
Jede Anzahl von Ziffern zwischen 1 und 6 ist erlaubt, aber die maximal erlaubte Hexadezimalzahl ist 10FFFF, d.h.
Dieser Platzhalter verwendet die Unicode-Codepunktnummerierung.
Wie Sie ihn verwenden
Welche Zeichen verwendet werden können, hängt letztlich von der Kodierung der Ausgabedatei ab. Wenn diese Kodierung z.B. ASCII ist, macht es keinen Sinn, darüber hinausgehende Zeichen einzufügen.
Beispiele:
Der Wert für ein Leerzeichen kann als
Das griechische "Sigma" Σ, auch bekannt als Summenoperator, kann mit
Und ein chinesisches Zeichen für "Haus" ist 屋, das auch als
Diese Platzhalter werden ersetzt, bevor eine andere Auflösung stattfindet. Sie können also sowohl als Teil von Spaltennamen als auch in beliebigem Text verwendet werden.