"Wszystkie zadania ćwiczeniowe należy rozwiązywać w języku Python w kopii Jupyter Notebook'a dla danych zajęć w wyznaczonych miejscach (komórki z komentarzem `# Solution`).\n",
"\n",
"Nie należy usuwać komórek z treścią zadań.\n",
"\n",
"Należy wyświetlać outputy przy pomocy `print`\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Istnieją 2 moduły do wykorzystania wyrażeń regularnych w Pythonie: `re` oraz `regex`\n",
"\n",
"Moduł `re` jest częścią standardowej biblioteki języka Python, natomiast `regex` stanowi osobny moduł, który należy zainstalować, by móc z niego korzystać. Moduł `re` jest prostszy i będzie wykorzystywany na potrzeby tych zajęć.\n",
"Dla chętnych: wyzwanie uczenia maszynowego, w którym można było zastosować wyrażenia regularne https://www.kaggle.com/c/pii-detection-removal-from-educational-data "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zadanie 1\n",
"Napisz funkcje wykorzystujące wyrażenia regularne do walidacji danych osobowych. Funkcje muszą zwrócić wartość `True`, gdy walidacja przejdzie pomyślnie, a w przeciwnym wypadku wartość `False`. Uwaga: funkcja nie ma sprawdzać, czy w danym tekście znajduje się dany rodzaj danych, tylko czy w pełni stanowi dany obiekt (np. tekst \"Imię: Adam\" albo \"Adam to szef\" nie powinien przejść walidacji). Funkcje do napisania:\n",
"* Funkcja walidująca imię (minimum 2 litery, zaczyna się wielką literą, pozostałe litery są małe, nie zawiera innych znaków oprócz liter)\n",
"* Funkcja walidująca nr telefonu w formacie (XX) XXX-XX-XX (np. (61) 222-45-56)\n",
"* Funkcja walidująca kod pocztowy XX-XXX (np. 61-620)\n",
"* Funkcja walidująca adres email (uproszczone założenia: pierwsza część składa się z liter i cyfr, potem mamy symbol \"@\", następnie domenę składającą się z liter, dalej symbol \".\" i na końcu ciąg liter od 2 do 6 znaków)"
"Napisz funkcję, która podzieli tekst na zdania. Zdanie kończy się kropką, znakiem zapytania lub wykrzyknikiem. Wykorzystaj pojedynczy pattern z wyrażeń regularnych. "
"Napisz funkcję, który znajdzie w tekście jak największą liczbę wulgaryzmów i zastąpi je ciągiem znaków \"---\" (i zwróci tekst bez wulgaryzmów). Użyj wyrażeń regularnych. Pamiętaj, że wulgaryzmy odmieniają się przez przypadki oraz tworzy się z nich czasowniki, które również można uznać za wulgaryzmy. Przetestuj program na prawdziwym tekście (minimum 500 znaków) zawierającym różne wulgaryzmy (np. jakaś wypowiedź z forum internetowego)."