Jesteś tutaj: GłównaWyrażenia regularne → Pozycje

Pozycje

Standardowo, mechanizm dopasowywania wzorców dopasuje wzorzec do tekstu niezależnie od położenia tego ostatniego; przykładowo, w poniższym tekście wyrażenie I dopasuje obie litery I:

I really knew little of my friend. His reserve had been always excessive and habitual. I was aware, however, that his very

A powiedzmy, że chcemy dopasować tylko to I, które jest na początku? To, co wtedy?

Jak to co – użyć asercji (albo: kotwic). Asercje (albo: kotwice) to metasymbole, które określają położenie poprzedzającego lub następującego po nich znaku (grupy znaków).

Podstawowe[1] asercje są dwie, trzy jeśli uwzględnimy przydatną asercję \b, oznaczającą odstęp między wyrazami. Są to, kolejno, daszek ^, dolar $ i wspomniane \b. Te dwie pierwsze oznaczają odpowiednio początek i koniec wiersza; o trzeciej wspomniano wcześniej.

Przykłady

Przykład 1

Wyrażenie ^$ dopasuje wszystkie puste linie w dokumencie,a wyrażenie ^# wszystkie linie, które zaczynają się od hasha # (komentarze w programie?).

Przykład 2

Chcąc znaleźć pierwsze I z wyżej umieszczonego fragmentu Zagłady domu Usherów, wystarczy zmodyfikować wyrażenie I, umieszczając na początku daszek; ^I dopasuje I, które rozpoczyna wiersz.

Przykład 3

Wyrażenie \bkot\b dopasuje słowo kot, ale nie kotłownia, ani nie stukot. Dopełnieniem asercji \b jest \B (analogicznie, jak w przypadku innych klas); dopasowuje ona wszystko, co nie nie jest odstępem między wyrazami. Stąd też wyrażenie \Bkot\B dopasuje słowo skotłowany i żadnego z wymienionych wcześniej w tym przykładzie. Czytelnik sam zorientuje się, co jaki napis dopasuje \Bkot\b, a jaki \bkot\B.

Przypisy

[1] Istnieje jeszcze kilka innych asercji – osobliwie dużo występuje ich w przypadku mechanizmu dopasowywania wzorców zaimplementowanego w interpreterze perla; ze względu jednak na ich wysoki stopień subtelności a niski stopień przydatności, postanowiłem ich opis umieścić na liście to-do, jeśli wiesz, co mam na myśli