PY_I_P_W14_M16 Wyszukiwanie wzorca w tekście
W Pythonie nie trzeba pisać całego algorytmu „od zera”, bo istnieją wbudowane funkcje i metody do wyszukiwania wzorca w tekście.
Metoda find() – pierwsze wystąpienie wzorca. Program zwraca indeks pierwszego dopasowania albo -1, jeśli nie znajdzie wzorca.
Zaleta: szybka i prosta
Wada: znajduje tylko pierwsze wystąpienie
Metoda rfind() – ostatnie wystąpienie wzorca
Zaleta: szybka i prosta
Wada: znajduje tylko pierwsze wystąpienie
Pętla z find() – wszystkie wystąpienia wzorca
Zaleta: prosty sposób na wszystkie dopasowania
Wada: nie działa na bardziej skomplikowane wzorce (np. z symbolami wieloznacznymi)
Porównanie wydajności dwóch metod wyszukiwania wzorca w tekście:
metody naiwnej (ręczna implementacja)
funkcji wbudowanej find()
Zobaczysz, że wbudowana funkcja Pythona jest znacznie szybsza, bo napisana w języku C i zoptymalizowana.
Kod porównawczy – wydajność metod wyszukiwania
Obie funkcje szukają tego samego wzorca „abab” w milionie znaków.
Wyniki są takie same (znaleziony indeks = 0).
Czas wykonania dla find() będzie setki lub tysiące razy krótszy niż dla metody naiwnej (w zależności od długości i zawartości tekstu i wzorca).