• Nie Znaleziono Wyników

Pracownia Technik Obliczeniowych Wyrażenia regularne Paweł Daniluk

N/A
N/A
Protected

Academic year: 2021

Share "Pracownia Technik Obliczeniowych Wyrażenia regularne Paweł Daniluk"

Copied!
10
0
0

Pełen tekst

(1)

Pracownia Technik Obliczeniowych

Wyrażenia regularne

Paweł Daniluk

Wydział Fizyki

Wiosna 2017

(2)

Wyrażenia regularne

W teorii

Sposób definiowania języków regularnych, które mogą być rozpoznawalne przez automaty skończone.

W praktyce

Wyrażenie składające się ze symboli ∅, ε, +, ∗, ), ( oraz znaków alfabetu.

1  – język zawierający słowo puste

2 ∅ – pusty język

3 a – język zawierający słowo a (gdzie a jest literą należącą do alfabetu)

4 w + v – suma języków

5 w ∗ – domknięcie Kleenego (język zawierający wszystkie słowa, które można utworzyć sklejając słowa języka w

6 wv – konkatenacja (język zawierający wszytkie słowa utworzone przez sklejenie pewnego słowa z w z pewnym słowem z v )

P. Daniluk(Wydział Fizyki) PTO III Wiosna 2017 2 / 10

(3)

Przykłady

(0 + 1) ∗ 0

(a + b) ∗ baba(a + b)∗

(4)

Składnia stosowana w praktyce

informatyka teoretyczna praktyka komentarz

∅,  brak w praktyce niepotrzebny

(, ) (, )

+ |

0 + 2 + 4 + h + a + l [024hal] zakres znaków 0 + . . . + 5 + a + . . . + h [0-5a-h] zakres znaków

a + . . . + z + A + . . . + Z . dowolny znak z alfabetu

* 0 lub więcej wystąpień

e +  e? wyrażenie e występuje 0 lub 1 raz

ee∗ e+ wyrażenie e występuje 1 lub więcej razy

brak ˆ początek łańcucha (lub wiersza)

brak $ koniec łańcucha (lub wiersza)

eeee e{4} określona liczba powtórzeń (tutaj 4)

eeee(e + )(e + )(e + ) e{4,7} zakres liczby powtórzeń (tutaj od 4 do 7)

Escaping

W wielu kontekstach znaki ( ) | { } i inne mają specjalne znaczenie. Wówczas trzeba je poprzedać znakiem \.

P. Daniluk(Wydział Fizyki) PTO III Wiosna 2017 4 / 10

(5)

grep

man grep

(6)

vim

Wyszukiwanie

Podczas wyszukiwania (klawisz /) można posługiwać się wyrażeniami regularnymi.

Substytucje

Polecenie s/<wzorzec>/<nowy>/ służy do zastępowania wystąpień wzorca nowym napisem. Można je stosować do całego tekstu, pojedynczej linii lub do zaznaczenia.

Kilka miłych udogodnień

\s, \S – spacja, nie-spacja

\d, \D – cyfra, nie-cyfra

\w, \W – znak słowny, znak nie-słowny

\1, \2, ... – odwołania do elementów dopasowanych do poprzednich nawiasów

\<, \> – początek/koniec słowa

P. Daniluk(Wydział Fizyki) PTO III Wiosna 2017 6 / 10

(7)

sed

man sed

(8)

Zadanie 0

Podaj wyrażenia regularne opisujące:

kod pocztowy numer telefonu liczbę rzeczywistą

deklarację funkcji w Pythonie (do dwukropka)

P. Daniluk(Wydział Fizyki) PTO III Wiosna 2017 8 / 10

(9)

Zadanie 1

Z pliku PDB wybierz:

wszystkie atomy wszystkie heteroatomy

atomy i heteroatomy (w kolejności w jakiej występują w pliku) węgle CA

atomy o jednej we współrzędnych w przedziale 100.00 ÷ 199.999 atomy o równej części całkowitej współrzędnych X i Y

(10)

Zadanie 2

Otwórz w vim’ie program napisany w Pythonie.

znajdź przypisania postaci a = a <op> <wyr>

w przypisaniach zamień lewą stronę z prawą

użyj wyrażeń regularnych, aby automatycznie wygenerować metodę __init__ przypisującą argumenty na atrybuty obiektu o tych samych nazwach

P. Daniluk(Wydział Fizyki) PTO III Wiosna 2017 10 / 10

Cytaty

Powiązane dokumenty

Uruchom dwa wsady: ten z zadania 2 i dodatkowy, który po zakończeniu pierwszego zliczy maszyny, na które

Systemy UNIXowe mają z reguły ten sam układ katalogów.. /bin Podstawowe pliki wykonywalne dostępne dla wszystkich (np. cat,

Zaimplementuj klasę Complex realizującą podstawowe operacje na liczbach zespolonych oraz testy jednostkowe

[r]

prawdopodobie«stwa wyst¡pienia okre±lonych warto±ci rzutu momentu p¦du cz¡stki na o±

O=PEFD;B=QBRSTU>=DUV?WX

[r]

[r]