Wyrażenia regularne
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaPerl: programowanie - Wyrażenia regularne
We wszystkich poniższych zadaniach, a raczej tam, gdzie jest to najsensowniejsze, napisz odpowiedni program, który będzie jednocześnie demonstracją rozwiązania. W zadaniach chodzi głównie o opracowanie wyrażenia regularnego, które dopasowuje się do określonych napisów. Program powinien wczytywać dane testowe i zwracać odpowiedni rezultat.
Zatem... napisz program, który: wczyta dane ze standardowego wejścia i wyszuka w nich:
- Wszystkie wiersze, które zawierają cyfry.
- Wszystkie wiersze, które nie zawierają cyfr.
- Wszystkie wiersze, które zawierają liczby całkowite. Dopuszczalne jest, aby liczby były zapisane w następujący sposób (przykłady): 12, +12, -12.
- Wszystkie wiersze, które zawierają liczby rzeczywiste bez znaku i bez wykładnika, czyli: 12.34, -12.34, +12.34, 12., +12., -12.. Liczby bez części przed kropką dziesiętną (czyli np. .007) nie powinny być akceptowane.
- Wszystkie wiersze, które są liczbami wybieranymi tak jak w powyższym zadaniu, ale dopuszczalne jest istnienie w nich zamiast kropki - również przecinka.
- Wszystkie wiersze, które zawierają poprawną liczbę sformatowaną w tradycyjny sposób, czyli jak w poprzednich zadaniach, oraz dodatkowo: 1.12e23, 1.23e+23, 1.23e-23, itp. Wyrażenie regularne, które zbudujesz powinno akceptować wszystkie możliwe formaty liczby rzeczywistej wypisywane np. przez printf z formatem %g.
- Wszystkie wiersze, które zawierają słowo perl ale nie zawierają słowa Perl.
- Wszystkie wiersze, które zawierają w sobie datę zapisaną jako YYYY-MM-DD.
- Wszystkie wiersze, które zawierają w sobie czas podany jako HH:MM:SS.sss, gdzie część .sss oznacza tysięczne części sekund i może w ogóle nie wystąpić.
- Wszystkie wiersze, które na początku lub na końcu zawierają jakieś białe znaki (np. spacje lub tabulatory).
- Wszystkie wiersze, które zawierają numer telefonu z kierunkowym 058 (do strefy województwa pomorskiego).
- Wszystkie wiersze, które zawierają słowo lub słowa napisane z wielkiej litery. Zadbaj w szczególności o to, aby twój program nie dał się nabrać na słowa typu R2D2 albo X*3abc.
- Wszystkie wiersze, które zawierają PRAWIDŁOWY adres IPv4 podany w formie xxx.yyy.zzz.ttt.
- Wszystkie wiersze, zawierające dowolny adres url.
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.