Metaznak
Metaznak to znak, który ma specjalne znaczenie dla programu komputerowego, takiego jak interpreter powłoki lub silnik wyrażeń regularnych (regex) .
W rozszerzonych wyrażeniach regularnych POSIX istnieje 14 metaznaków, które muszą zostać poprzedzone znakiem ucieczki (poprzedzone ukośnikiem odwrotnym ( \
)), aby usunąć ich specjalne znaczenie i być traktowane dosłownie wewnątrz wyrażenia: otwierające i zamykające nawiasy kwadratowe ( [
i ]
); ukośnik odwrotny ( \
); karetka ( ^
); znak dolara ( $
); kropka/kropka/kropka ( .
); symbol pionowej kreski/rury ( |
); znak zapytania ( ?
); gwiazdka ( *
); znaki plusa i minusa ( +
i -
); otwierające i zamykające nawiasy klamrowe/nawiasy klamrowe ( {
i }
); oraz nawiasy otwierające i zamykające ( (
i )
).
Na przykład, aby dopasować wyrażenie arytmetyczne (1+1)*3=6
do wyrażenia regularnego, poprawne wyrażenie regularne to \(1\+1\)\*3=6
; w przeciwnym razie nawiasy, znak plus i gwiazdka będą miały specjalne znaczenie.
Inne przykłady
Niektóre inne znaki mogą mieć specjalne znaczenie w niektórych środowiskach.
- W niektórych powłokach systemu Unix średnik („;”) jest separatorem instrukcji .
- W XML i HTML znak ampersand („&”) wprowadza jednostkę HTML . Ma również specjalne znaczenie w wierszu polecenia MS-DOS / Windows .
- W niektórych powłokach uniksowych i wierszu polecenia systemu MS-DOS/Windows znaki mniejszości i większości („<” i „>”) są używane do przekierowania , a akcent wsteczny /grave („`”) jest używany do zamiana poleceń .
- W wielu językach programowania łańcuchy są rozdzielane cudzysłowami (" lub ') . W niektórych przypadkach znaki specjalne (i inne metody) są używane w celu uniknięcia kolizji separatorów , np. "Powiedział \"Cześć\"" .
- W ciągach formatu printf znak procentu („%”) służy do wprowadzania specyfikatorów formatu i musi być poprzedzony znakami ucieczki jako „%%”, aby można go było interpretować dosłownie. W języku SQL procent jest używany jako symbol wieloznaczny .
- W języku SQL znak podkreślenia („_”) służy do dopasowania dowolnego pojedynczego znaku.
Ucieczka
Termin „ucieczka przed metaznakiem” oznacza uczynienie metaznaku nieskutecznym (pozbawienie go specjalnego znaczenia), powodując, że ma on swoje dosłowne znaczenie. Na przykład w PCRE kropka (".") oznacza dowolny pojedynczy znak. Wyrażenie regularne „AC” będzie pasować do „ABC”, „A3C”, a nawet „AC”. Jeśli jednak „.” zostanie zmieniona, straci swoje znaczenie jako metaznak i będzie interpretowana dosłownie jako „.”, co spowoduje, że wyrażenie regularne „A\.C” będzie pasować tylko do ciągu „AC”.
Zwykłym sposobem na uniknięcie znaku w wyrażeniu regularnym i gdzie indziej jest poprzedzenie go ukośnikiem odwrotnym („\”). Inne środowiska mogą wykorzystywać inne metody, takie jak MS-DOS/Windows Command Prompt, gdzie zamiast nich używany jest daszek („^”).