Jesteś tutaj: GłównaWyrażenia regularne → Jak to działa. Kropka.

Jak to działa. Kropka.

To, jak w ogóle działają wyrażenia regularne i czym się je je, najlepiej zobaczyć na przykładzie. W tym celu weźmy sobie tekst:

During the whole of a dull, dark, and soundless day in the autumn of the year, when the clouds hung oppressively low in the heavens, I had been passing alone, on horseback, through a singularly dreary tract of country (...)

Czytelnik zechce mi wybaczyć użycie języka Szekspira - w tym przypadku, na samym początku przygody z wyrażeniami regularnymi, nie będziemy wdawać się w szczegóły takie, jak, na przykład, polskie znaki diakrytyczne; lepiej zacząć od rzeczy prostych, których nie cechują się posiadaniem subtelnych detali mogących zaciemnić tylko obraz.

Załóżmy, że chcemy dopasować wzorzec ing. Mechanizm dopasowywania wzorca bierze sobie ten wzorzec i zaczyna go dopasowywać:

During the whole of a dull, dark, and soundless day in the
ing

Wzorzec nie pasuje, więc porównywany jest następny znak wyrazu During, a potem następny, aż mechanizm natrafi na trzy literę i:

During the whole of a dull, dark, and soundless day in the
   ing

Ponieważ litera ta odpowiada pierwszej literze wzorca, mechanizm sięgnie po jego kolejną literę, która również zostanie dopasowana, podobnie jak ostatnia litera g:

During the whole of a dull, dark, and soundless day in the
   ing

W przypadku słowa in, przedostatniego w rozpatrywanym przykładzie, mechanizm dopasuje pierwsze dwie litery:

During the whole of a dull, dark, and soundless day in the
                                                    ing

jednakże po pobraniu trzeciego, ostatniego znaku wzorca, okaże się, że nie pasuje on do tekstu, przez co wyrażenie nie zostanie dopasowane:

During the whole of a dull, dark, and soundless day in the
                                                    ing

Z tej lekcji należy wyciągnąć dwa wnioski:

  1. mechanizm dopasowywania wzorców dopasowuje cały wzorzec, a nie jego fragment;
  2. i jest mu całkowicie obojętne, w którym miejscu tekstu dopasowanie wystąpi, nie musi to być ani na początku, ani na końcu tekstu (chyba, że explicite to mechanizmowi wskażemy)

Kropka

Znak kropki . pełni specjalną rolę w mechaznizmie wyrażeń regularnych - odpowiada on bowiem (prawie) dowolnemu znakowi. Zmieniając więc rozpatrywane powyżej wyrażenie na in. dopasowalibyśmy nie tylko trzy ostatnie litery słowa During, ale również słowo in i następującą po nim spację:

During the whole of a dull, dark, and soundless day in the
                                                    in.

Jedyne, czego kropka nie dopasowuje, to znak końca wiersza.