• Nie Znaleziono Wyników

3 WyraŜenia regularne w badaniach korpusowych

3.1 WyraŜenia regularne

WyraŜenia regularne to ciągi znaków zastępujących inne ciągi znaków (szukanych), przy czym pewne stosowane znaki (zgodnie z konwencją umowną) zastępują całą klasę znaków szukanych, na przykład litery, cyfry, słowa. Obok znaków dosłownych (np. liter, cyfr) stosuje się więc metaznaki mające znaczenie umowne, które omówiono poniŜej. Wprowadzone wyraŜeniem regularnym znaki są interpretowane przez program (edytor tekstowy). Mimo Ŝe ogólne zasady pozostają podobne, poszczególne programy (edytory tekstowe oraz środowiska programowania) róŜnią się składnią wyraŜeń i moŜliwościami. Dlatego przed zastosowaniem konkretnego narzędzia naleŜy zapoznać się z zastosowaną w nim konwencją. Podane poniŜej przykłady zostały zastosowane i zweryfikowane przede wszystkim w edytorze TextPad (standard POSIX P1003.2), a takŜe – EditPro. Edytor tekstu Word w pakiecie MS Office równieŜ pozwala wyszukiwać niektóre

proste wyraŜenia regularne. Są one określane jako „symbole wieloznaczne”

i obejmują dowolny znak, znak w zakresie, początek wyrazu, koniec wyrazu, wyraŜenie i liczbę wystąpień (nazewnictwo według polskiej wersji programu MS Word 2003).

Bardziej zaawansowane edytory (np. EditPro) pozwalają w duŜym zakresie stosować wyraŜenia regularne takŜe w przypadku operacji zastępowania (polecenie Replace).

3.2 Metaznaki

Podstawowe metaznaki (znaki mające znaczenie umowne) rozpoznawane przez program TextPad są następujące:

1. Klasa znaków:

[znak, znaki lub zakres] – dopasowuje wszystkie znaki podane w nawiasie kwadratowym, przy czym w nawiasie mogą występować znaki oddzielone myślnikiem, oznaczające przedział.

Przykłady:

[gra]

Działanie: dopasowuje wszystkie ciągi małych liter g, r i a24 występujących w tej kolejności.

[a-z]

Działanie: dopasowuje wszystkie wystąpienia małych liter w tekście (wyraŜenie stosowane w połączeniu z innymi znakami).

[0-9]

Działanie: wyszukuje wszystkie wystąpienia cyfr.

2. Dowolny znak:

. (kropka) odpowiada dowolnemu znakowi Przykład:

ga.nik

Działanie: wyszuka ciąg znaków gaźnik, ale takŜe gajnik w słowie zagajnik.

24 W niektórych edytorach tekstowych (np. TextPad, EditPro) istnieje moŜliwość określenia, czy wyszukiwanie ma uwzględniać róŜnice między literami małymi a wielkimi (case sensitive/case insensitive). Jeśli na przykład w analizie nie ma znaczenia, czy wyraz rozpoczyna się wielką literą (np. na początku zdania), wyszukiwanie powinno ignorować rozróŜnienie między literami małymi a wielkimi. W takim wypadku wyrazy Man, man i MAN będą uznawane za identyczne.

3. Alternatywa:

| − symbol ten oznacza lub Przykład:

woda|wody|wodzie|wodą|wodo

Działanie: dopasowuje wszystkie wystąpienia ciągu znaków woda we wszystkich przypadkach (wyszukane zostanie teŜ np. słowo powoda).

WyraŜenie to moŜna uprościć korzystając z nawiasów okrągłych:

wod(a|y|zie|ą|o) – poniewaŜ ciąg znaków wod jest wspólny dla wyszukiwanych ciągów.

4. Początek wiersza:

^ − wyszukuje początek wiersza (w zaleŜności od ustawień zawijania tekstu moŜe być to początek akapitu).

Przykład:

^There

Działanie: wskaŜe wszystkie wiersze (akapity) rozpoczynające się od ciągu znaków There (a zatem takŜe Therefore).

5. Koniec wiersza:

$ − wyszukuje koniec wiersza Przykład:

[1-9]$

Działanie: dopasowuje wszystkie cyfry z przedziału od 1 do 9 występujące na końcu wiersza.

6. Sekwencja „unikowa”:

\ − poniewaŜ pewne znaki interpretowane są jako metaznaki (o znaczeniu umownym), sekwencja unikowa przed takim znakiem usuwa znaczenie umowne, czyli metaznakowe.

Przykład:

\.$

Działanie: wyszukuje wszystkie końce wierszy kończące się kropką (bez zastosowania sekwencji unikowej dopasowane zostałyby wszystkie wiersze kończące się dowolnym znakiem (niedopasowane pozostałyby jedynie wiersze puste).

7. Kwantyfikatory − róŜna ilość wystąpień znaku lub ciągu znaków:

a) znak lub ciąg opcjonalny (zero lub jedno wystąpienie)

? – znak (lub znaki w nawiasie okrągłym), po którym następuje ten metaznak, jest traktowany opcjonalnie, tzn. nie musi wystąpić w wyszukanej frazie. Znak umoŜliwia skrócenie wyraŜenia regularnego, poniewaŜ odpowiednio uŜyta alternatywa jest mu równowaŜna.

Przykład:

mag?ma

Działanie: odnajduje ciągi znaków magma oraz mama (równowaŜne mama|magma).

b) dowolna liczba wystąpień

* − dopasowuje wyraŜenie, jeśli znak lub ciąg znaków w nawiasie okrągłym, które go poprzedzają, występuje zero lub więcej razy.

Przykład:

\.\.*

Działanie: dopasowuje wszystkie wystąpienia co najmniej dwu kropek następujących po sobie (zastosowano takŜe sekwencję unikową).

c) co najmniej jedno wystąpienie

+ – dopasowuje wyraŜenie, jeśli znak lub ciąg znaków w nawiasie okrągłym, które go poprzedzają, występuje co najmniej raz.

Przykład:

\.\.+

Działanie: dopasowuje wszystkie wystąpienia co najmniej dwu kropek następujących po sobie (zastosowano takŜe sekwencję unikową) – identyczne z przykładem powyŜej.

[a-z]+

Działanie: znajduje wszystkie wystąpienia ciągów znaków literowych (wyraŜenie takie dopasuje wszystkie wyrazy rozumiane jako ciągi znaków literowych ograniczone znakami nieliterowymi bądź początkiem lub końcem wiersza).

8. Negacja:

[^znak (znaki)] − znak następujący po symbolu negacji nie moŜe wystąpić w dopasowywanym wyraŜeniu.

Przykład:

tyt[^(an)]

Działanie: wyraŜenie nie dopasuje ciągów znaków typu:

tytaniczny, tytan, dopasuje zaś ciąg znaków inwestytura (co ciekawe, wyraŜenie to nie dopasuje ciągów znaków typu apatyt$ (ogólniej:

ciągów znaków, w których po sekwencji tyt nie występuje inny znak).

9. Granice wyrazu:

\< oraz \> − dopasowują odpowiednio początek i koniec wyrazu (ściślej − ciągu znaków alfanumerycznych). Te sekwencje metaznaków traktują łącznik jako granicę wyrazów, zatem np. wyrazy pół-Polak, czarno-biały będą interpretowane jako dwa wyrazy.

Przykłady:

\<ga?nik

Działanie: dopasuje ciąg znaków gaźnik, gaźnikowy, ale zagajnik – nie.

ga?nik\>

Działanie: dopasuje zarówno ciąg znaków gaźnik, jak i zagajnik, ale nie gaźnikowy. Warto zauwaŜyć, Ŝe wyraŜenie takie nie dopasuje ciągu znaków gaźnik1. Ciągi tego typu mogą często występować w zbiorach tekstów, w których stosowano przypisy (w tekście oryginalnym – przed konwersją do pliku tekstowego − liczba oznaczająca przypis występowała jako indeks górny).

10. Odwołania wsteczne:

\(ciąg znaków lub metaznaków)\ – jest to niezwykle przydatna konstrukcja, jeśli w wyraŜeniu regularnym chce się wykorzystać zmienne, czyli odwołać się do (ciągu) znaków dopasowanego wcześniej. Odwołanie do takiej sekwencji to ukośnik lewy i cyfra (od 1 do 9) oznaczająca numer kolejny odwołania (np. program TextPad obsługuje do dziewięciu odwołań w jednym wyraŜeniu). Typ ten został wykorzystany w pracy do ekscerpcji róŜnych typów ciągów interesujących z punktu widzenia badań językoznawczych.

Przykład:

\(<\([a-z]\)[a-z]*_\125

Działanie: wyraŜenie to wyszukuje znak literowy (pierwszy w ciągu), po którym następuje zero lub więcej znaków literowych (wyraz), spacja, a następnie znak literowy identyczny z pierwszym znakiem ciągu. WyraŜenie zatem dopasuje następujące ciągi: biały b, kropka k itd.

25 Spacje w wyraŜeniach regularnych będą w tekście umownie oznaczane podkreśleniem.

Powiązane dokumenty