Ukośniki odwrotne

Podczas konstruowania wyrażeń regularnych, znak ukośnika odwrotnego może być używany na wiele sposobów.

Znak ukośnika odwrotnego (\) może być używany do:
  • Wyłącz specjalne znaczenie metaznaków, tak aby mogły być traktowane jak zwykłe znaki.
  • Uwzględnij znaki niedrukowalne w wyrażeniu regularnym.
  • Nadaj specjalne znaczenie niektórym normalnym postaciom.
  • Określ badania wsteczne. Backreferences służy do określania, że wcześniejsze dopasowanie podwyrażenia jest dopasowywane ponownie później.
Uwaga: Znak ukośnika odwrotnego nie może być ostatnim znakiem w wyrażeniu regularnym.

Gdy wyrażenie regularne jest zapisywane w języku SQL, analizator składni SQL najpierw przetwarza literały łańcuchowe przed przekazaniem ich do biblioteki wyrażeń regularnych. Analizator składni SQL przetwarza sekwencje ukośników odwrotnych, tak więc pojedyncze ukośniki odwrotne nie będą widoczne w bibliotece wyrażeń regularnych. Dlatego podczas pisania wyrażenia regularnego w języku SQL należy używać podwójnych ukośników odwrotnych w celu zmiany znaczenia znaków zastrzeżonych.

Na przykład, aby uniknąć nawiasów w łańcuchu '1_(22)', należy użyć następującego wyrażenia: '1_\\(22\\)'.

W poniższej tabeli opisano sposób określania sekwencji ukośników odwrotnych dla znaków niedrukowalnych i cofających się. W tej tabeli przedstawiono również sposób użycia sekwencji ukośnika odwrotnego w celu zastosowania specjalnego znaczenia dla niektórych zwykłych znaków.

Tabela 1. Sekwencja ukośników odwrotnych
Sekwencja ukośnika odwrotnego Opis
\a Pasuje do dzwonka (kod ASCII 7).
\e Pasuje do znaku zmiany znaczenia (kod ASCII 27).
\f Pasuje do znaku nowego formatu (kod ASCII 12).
\n Odpowiada znakowi nowego wiersza lub znaku nowego wiersza (kod ASCII 10).
\r Pasuje do znaku powrotu karetki (kod ASCII 13).
\t Pasuje do znaku tabulacji poziomej (kod ASCII 9).
\v Pasuje do znaku tabulacji pionowej.
\< Jest zgodny z początkiem słowa lub początkiem identyfikatora, który jest zdefiniowany jako granica między znakami niealfanumeryczne i alfanumerycznymi (w tym podkreśleniem). Oznacza to, że nie są zgodne żadne znaki, tylko kontekst.
\> Odpowiada końcowi słowa lub identyfikatora.
\b Odpowiada granicy słowa, to znaczy jest zgodny z pustym łańcuchem na początku lub na końcu sekwencji alfanumerycznej.

Włącza wyszukiwanie "całych słów".

\B Pasuje do granicy bez słowa, to znaczy, że jest zgodny z pustym łańcuchem, a nie na początku lub na końcu słowa.
\d Zastępuje dowolną cyfrę dziesiętną.

Równoważne z [0-9] i [[:digit:]].

\D Zastępuje dowolny znak, który nie jest cyfrą.

Odpowiada wartości [^0-9] lub [^[:digit:]].

\s Pasuje do dowolnego znaku białego znaku.

Odpowiada wartości [ \t\n\r\f\v] lub [ [ :space:]].

\S Oznacza dowolny znak inny niż biały znak.

Odpowiada wartości [^ \t\n\r\f\v] lub [^[:space:]].

\w Pasuje do znaku wyrazu, to znaczy dowolnego znaku alfanumerycznego lub podkreślenia.

Odpowiada wartości [a-zA-Z0-9_] lub [[:alnum:]_].

\W Oznacza dowolny znak inny niż alfanumeryczny.

Odpowiada wartości [^a-zA-Z0-9_] lub [^[:alnum:]_].

\[1-9] Ukośnik odwrotny, po którym następuje pojedyncza, niezerowa cyfra dziesiętna n , jest określany jako wyłuskiwanie.

Pasuje do tego samego zestawu znaków, który jest zgodny z podwyrażeniem n.

Przykładowe konstrukcje ukośnika odwrotnego

\bcat\b jest zgodny z cat , ale nie z cats ani bobcat.

\d\s jest zgodna z cyfrą, po której następuje znak spacji.

.([XY]).([XY]). matches aXbXc and aYbYc, but also aXbYc and aYbXc. Jednak produkt .([XY]).\1. będzie zgodny tylko z aXbXc i aYbYc.

Uwaga: Konstrukcje ukośnika odwrotnego nie zachowują swojego specjalnego znaczenia w wyrażeniach branketed. Wyrażenie, takie jak [\d] , nie może być używane do dopasowania cyfr.