Metakaraktär

En metatecken är en karaktär som har en speciell betydelse för ett datorprogram, till exempel en skaltolk eller en motor för reguljära uttryck (regex).

I POSIX utökade reguljära uttryck finns det 14 metatecken som måste escapes (föregås av ett snedstreck ( \ )) för att ta bort sin speciella betydelse och behandlas bokstavligt i ett uttryck: öppnande och stängande hakparenteser ( [ och ] ); omvänt snedstreck ( \ ); caret ( ^ ); dollartecken ( $ ); punkt/punkt/punkt ( . ); vertikal streck/rörsymbol ( | ); frågetecken ( ? ); asterisk ( * ); plus- och minustecken ( + och - ); öppna och stänga krulliga parenteser/stag ( { och } ); och öppnande och stängda parenteser ( ( och ) ).

Till exempel, för att matcha det aritmetiska uttrycket (1+1)*3=6 med ett regex, är det korrekta regexet \(1\+1\)\*3=6 ; annars kommer parenteserna, plustecknet och asterisken att ha speciella betydelser.

Andra exempel

Vissa andra karaktärer kan ha speciell betydelse i vissa miljöer.

Flyr

Termen "att undkomma en metakaraktär" betyder att göra metakaraktären ineffektiv (att ta bort den från dess speciella betydelse), vilket gör att den får sin bokstavliga betydelse. Till exempel, i PCRE står en punkt (".") för varje enskilt tecken. Det reguljära uttrycket "AC" kommer att matcha "ABC", "A3C" eller till och med "AC". Men om "." är escaped kommer den att förlora sin betydelse som en metatecken och tolkas bokstavligen som ".", vilket gör att det reguljära uttrycket "A\.C" bara matchar strängen "AC".

Det vanliga sättet att undkomma ett tecken i ett regex och på andra ställen är genom att prefixa det med ett snedstreck ("\"). Andra miljöer kan använda olika metoder, som MS-DOS/Windows Command Prompt, där en indikator ("^") används istället.

Se även