Wyrażenia regularne - część 2
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaPerl: programowanie - Wyrażenia regularne - część 2
- Napisz program, który poprawia tekst z wpisanym imieniem piotr na taki sam tekst, z tym, że imię piotr jest pisane z wielkiej litery. Jeżeli to imię ci się nie podoba, wymyśl inne.
- Napisz program, który po wczytaniu dowolnego tekstu wyparsuje z niego urle i przedstawi je w postaci listy odnosników. Lista może być generowana jako zwykły tekst, lub w postaci pliku HTML - do wyboru.
- Napisz program, który wykona działania zapisane w pliku tekstowym. W każdym wierszu pliku znajdować się może jedno działanie: dodawanie, mnożenie, odejmowanie lub dzielenie oraz dwie liczby, wszystko zapisane w notacji normalnej lub odwrotnej polskiej (jak chcesz). Program powininen wczytywać kolejno wiersz po wierszu, parsować dane i wykonywać odpowiednie działania. Wynikiem działania powinna być lista wierszy z wynikami obliczeń wypisana na standardowe wyjście. Przykład:
Dane: 1 + 2 2 * 3 5 - 7
Wyniki: 3 6 -2
- Napisz program działający jak filtr, którego zadaniem będzie poprawianie tekstu. Danymi dla programu ma być tekst, przekazany przez np. standardowe wejście. Program ma ten tekst wczytać, i poprawić następujące rzeczy:
- Pisownię znaków przestankowych: przed nimi nie może być spacji, za nimi musi być spacja.
- Pisownię myślników i pauz - znaki te otoczone powinny być spacjami
- Pisownię nawiasów: przed nawiasami powinna być spacja, po nawiasach także, ale nie wtedy, gdy znajduje się za nimi kropka lub inny znak przestankowy
- Zdania powinny zaczynać się od wielkiej litery. Skrótów można nie obsługiwać, zatem wielka litera po słowie "np." Jest w porządku.
- Napisz program, który po analizie dowolnej strony HTML (podanej mu na standardowe wejście lub w osobnym pliku), ściągnie wszystkie obrazki, które zostały w stronie WWW użyte. Do pobierania obrazków z sieci możesz użyć programu wget.
- Napisz program, generujący słownik na podstawie dowolnego tekstu. Zadaniem programu jest wydobycie z tekstu wszystkich słów napisanych bez cyfr, konwersja znaków na małe litery i zliczenie 10 najczęściej występujących przypadków. Zadanie to można także wykonać dla znaków i określić, jaka jest ich częśtość występowania, np. w różnych językach mówionych, lub różnych językach programowania. Czy potrafisz napisać program, który zidentyfikuje język na podstawie analizy częstotliwości znaków?
- Napisz procedurę readINI, która przyjmuje jeden parametr - nazwę pliku, i wczytuje ten plik. Plik powininen mieć taki format, jak pliki INI znane ze środowiska Windows. Procedura powinna parsować cały plik i zwracać hasz z konfiguracją. Oto przykłady:
Takiej funkcji możesz potem używać w swoich programach w sposób następujący:; w pliku ini komentarze są po średniku [sekcja] ; nagłówki sekcji parametr = wartość ; klucz = wartość parametr2 = wartość2 ; itp, itd...
Wynikowy hasz: %X = ( sekcja => { parametr => 'wartość', parametr2 => 'wartość2', } }
my $config_file = '/home/piotao/program.ini'; my %CONFIG = readINI($config_file);
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.