Metacharakter
A Metacharakter ist ein Charakter, der für ein Computerprogramm eine besondere Bedeutung hat, z. B. einen Shell -Interpreter oder einen regelmäßigen Ausdruck (REGEX) -Motor.
In POSIX erweiterten regulären Ausdrücke gibt es 14 Metacharacter, die sein müssen entkam (Vorangegangen von einem Backslash (\
)) Um ihre besondere Bedeutung fallen zu lassen und buchstäblich in einen Ausdruck behandelt zu werden: Öffnen und Schließen von Quadratklammern ([
und ]
); Backslash (\
); Pflege (^
); Dollarzeichen ($
); Periode/Full Stop/DOT (.
); vertikales Balken/Rohrsymbol (|
); Fragezeichen (?
); Sternchen (*
); Plus und minus Zeichen (+
und -
); Öffnen und Schließen von lockigen Klammern/Zahnspangen ({
und }
); und Öffnen und Schließen von Klammern ((
und )
).
Zum Beispiel zum arithmetischen Ausdruck übereinstimmen (1+1)*3 = 6
Mit einer Regex ist der richtige Regex \ (1 \ +1 \) \*3 = 6
; Andernfalls haben die Klammern, plus Zeichen und Sternchen besondere Bedeutungen.
Andere Beispiele
Einige andere Charaktere haben in einigen Umgebungen möglicherweise eine besondere Bedeutung.
- In einigen Unix -Muscheln das Semikolon (";") ist ein Aussageabscheider.
- Im Xml und Html, das Et-Zeichen ("&") führt eine vor HTML -Entität.[1] Es hat auch eine besondere Bedeutung in MS-DOS/Windows -Eingabeaufforderung.[2]
- In einigen Unix-Shells und MS-DOS/Windows-Eingabeaufforderung, die Eingabeaufforderung Weniger als Zeichen und größer als Zeichen ("<" und ">") werden für verwendet Umleitung und die Backtick/Grabakzent ("" ") wird für verwendet Befehlssubstitution.[2]
- In vielen Programmiersprachen, Saiten sind abgrenzt Verwendung Zitate ("oder '). In einigen Fällen,, Flucht Charaktere (und andere Methoden) werden verwendet, um zu vermeiden Grenzkollision, z.B. "Er sagte:" Hallo "".
- Im Printf -Format -Saiten, das Prozentzeichen ("%") wird verwendet, um Formatspezifizierer einzuführen, und muss als "%%" entkommen, um wörtlich zu interpretieren.[3] Im Sql, der Prozentsatz wird als verwendet Wildcard -Charakter.[4]
- In SQL, die unterstreichen ("_") wird verwendet, um ein einzelnes Zeichen anzupassen.[4]
Flucht
Der Begriff "einem Metacharakter zu entkommen" bedeutet, den Metacharacter ineffektiv zu machen (um ihn von seiner besonderen Bedeutung zu entfernen), was dazu führt, dass er seine wörtliche Bedeutung hat. Zum Beispiel in Pcre, ein Punkt (".") steht für jeden einzelnen Charakter. Der reguläre Ausdruck "a.c" passt zu "ABC", "A3C" oder sogar "A c". Wenn jedoch das "." Es wird entkommen, es wird seine Bedeutung als Metacharacter verlieren und buchstäblich als "." interpretiert, wodurch der reguläre Ausdruck "a \ .c" nur mit der Zeichenfolge "a.c" übereinstimmt.
Die übliche Art, einem Charakter in einer Regex und anderswo zu entkommen, besteht darin, ihn mit einem Backslash ("\") zu beleben. Andere Umgebungen können unterschiedliche Methoden wie MS-DOS/Windows-Eingabeaufforderung anwenden, wobei stattdessen eine Pflege ("^" verwendet wird.[2]
Siehe auch
Verweise
- ^ "Charakterentität Referenzen in HTML 4". www.w3.org. W3c. 24. Dezember 1999. Abgerufen 2018-11-19.
- ^ a b c "Befehlsschalenübersicht". docs.microsoft.com. Microsoft. 10. September 2009. Abgerufen 2018-11-19.
- ^ "Die offenen Gruppenbasis -Spezifikationen Ausgabe 7: fprintf". Pubs.opengroup.org. Die offene Gruppe. 2018. Abgerufen 2018-11-19.
- ^ a b "Wie (transact-sql)" ". docs.microsoft.com. Microsoft. 14. März 2017. Abgerufen 2018-11-19.