import re

# re.match()
# re.match(pattern, string, flags=0)
# Sprawdza czy dany wzorzec pasuje do początku ciągu
# Zwraca Match jeśli pasuje, w przeciwnym razie None

sentence = 'Ala ma kota'

result = re.match(r'Ala', sentence)
print(f'Wyszukiwanie elementu Ala {result}')
print(f'Znaleziono element {result.group()}')
print(f'Początek dopasowania znajduje się pod indeksem {result.start()}')
print(f'Koniec dopasowania następuje sie pod indeksem {result.end()}')
print(f'Krotka zawierająca przedział z dopasowaniem {result.span()}')

result = re.match(r'kota', sentence)
print(f'Wyszukiwanie elementu kota {result}')

result = re.match(r'ala', sentence)
print(f'Wyszukiwanie elementu ala {result}')

result = re.match(r'ala', sentence, re.IGNORECASE)
print(f'Wyszukiwanie elementu ala {result}')

# re.search()
# re.search(pattern, string, flags=0)
# Sprawdza czy dany wzorzec występuje gdziekolwiek
# Zwraca to samo co re.match()
napis = 'Ala ma 123 jabłka'
result = re.search(r'\d+', napis)
print(f'Wyszukiwanie liczby zakończone, wykryto {result}')

# re.findall()
# re.findall(pattern, string, flags=0)
# Funkcja przeszukuje cały ciąg znaków w poszukiwaniu wszystkich wystąpień wzorca
# Zwraca listę wszystkich pasujących fragmentów

napis = 'Ala i Kuba jadą na wycieCzkę do Warszawy'
result = re.findall(r'\b[A-Z][a-z]+', napis)
print(result)

# re.sub()
# re.sub(pattern, repl, string, count=0, flags=0)
text = 'Valorant to najlepsza strzelanka na świecie'
pattern = 'Valorant'
replacement = "CS"
new_text = re.sub(pattern, replacement, text)
print(new_text)

# ZADANIE 1
# Sprawdź czy w tekście
# 'Uczę się programowania w języku python3'
# występuje cyfra
sentence = 'Uczę się programowania w języku python3'
pattern = r'\d'
pattern2 = r'[0-9]'
result = re.search(pattern, sentence)
print('Znaleziono') if result else print('Nie znaleziono')

# ZADANIE 2
sentence = 'Juliusz Słowacki (ur. 4 września 1809 w Krzemieńcu, zm. 3 kwietnia 1849 w Paryżu) – polski poeta, dramaturg, filozof i epistolograf. Obok Adama Mickiewicza i Zygmunta Krasińskiego określany jako jeden z polskich wieszczów narodowych. Twórca filozofii genezyjskiej (pneumatycznej), epizodycznie związany z mesjanizmem polskim, był też mistykiem. Obok Adama Mickiewicza uznawany powszechnie za największego przedstawiciela polskiego romantyzmu.'

pattern = r'\d+\s\w+\s\d{4}'
print(re.findall(pattern, sentence))

# ZADANIE 3
pattern = r'\d{4}'
print(re.sub(pattern, '2137', sentence))

# ZADANIE 4
# Znajdź wszystkie daty w formacie DD-MM-YYYY z tekstu
# 'Dzisiaj jest 20-10-2024, a jutro będzie 21-10-2024'
sentence = 'Dzisiaj jest 20-10-2024, a jutro będzie 21-10-2024'
pattern = r'\d{2}-\d{2}-\d{4}'
print(re.findall(pattern, sentence))

# ZADANIE 5
# Znajdź liczby nieparzyste
sentence = 'Podane liczby to 5, 12, 442, 321, 45, 20, 77'
pattern = r'\b\d*[1,3,5,7,9]\b'
print(re.findall(pattern, sentence))

# ZADANIE 6
sentence = 'start script level loop debug player server tournament map speedrun quest socket'
pattern = r'\b\w*(?:[aeiouy]\w*){3,}\b'
print(re.findall(pattern, sentence, re.I))