Wprowadzenie do wyrażeń regularnych w Pythonie
Wyrażenia regularne to polecenia do zaawansowanego wyszukiwania i zamiany (lub po prostu wyszukiwania). Pozwalają one robić bardzo ciekawe rzeczy, ale niestety są dość trudne do opanowania.
Aby rozpocząć pracę z wyrażeniami regularnymi
w Pythonie, musimy zaimportować specjalny
moduł re:
import re
Moduł re zawiera metody
przeznaczone do pracy z wyrażeniami
regularnymi. Wyrażenie regularne
przedstawia zestaw poleceń i składa się
z dwóch typów znaków: z tych, które
oznaczają same siebie oraz z znaków-poleceń,
które nazywane są znakami specjalnymi.
Zapoznanie się z wyrażeniami regularnymi lepiej
rozpocząć na przykładzie metody sub, która
jest używana do zamian w ciągu znaków. Pierwszym
parametrem metoda przyjmuje co zamienić,
drugim - na co zamienić. W trzecim parametrze
określamy ciąg, w którym należy dokonać
zamiany. W czwartym opcjonalnym parametrze
ustawiamy liczbę zamian. Najprostsza
zamiana za pomocą tej metody będzie
wyglądać tak:
res = re.sub('a', '!', 'bab')
print(res) # wypisze 'b!b'
Jak zauważyłeś, w wyrażeniu regularnym
litery oznaczają same siebie. To samo
dotyczy również cyfr. Zamieńmy cyfrę
2 na !:
res = re.sub('2', '!', '12abc3')
print(res) # wypisze '1!abc3'
A kropka jest znakiem specjalnym
i oznacza dowolny znak. W następnym
przykładzie znajdźmy podciąg według takiego
wzorca: litera 'x', następnie dowolny
znak, potem znowu litera 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # wypisze '! eee'
Dany jest ciąg:
txt = 'ahb acb aeb aeeb adcb axeb'
Napisz wyrażenie regularne, które znajdzie ciągi
'ahb', 'acb', 'aeb'
według wzorca: litera 'a', dowolny
znak, litera 'b'.
Dany jest ciąg:
txt = 'aba aca aea abba adca abea'
Napisz wyrażenie regularne, które znajdzie ciągi
'abba', 'adca', 'abea'
według wzorca: litera 'a', 2
dowolne znaki, litera 'a'.
Dany jest ciąg:
txt = 'aba aca aea abba adca abea'
Napisz wyrażenie regularne, które znajdzie ciągi
'abba' i 'abea', nie wychwytując
'adca'.