03 WDL WyrazeniaRegularne

background image

Wyrażenia
regularne

dr inż. Ireneusz Mrozek

dr inż. Andrzej Chmielewski

Wydział Informatyki

Politechniki Białostockiej

background image

Wyrażenia regularne

Wyrażenia

regularne

Wzorce opisujące łańcuchy symboli

Wyrażenia regularne mogą:
- określać zbiór pasujących łańcuchów
- wyszczególniać istotne części łańcucha

^(.?:[0­9]{1,3}\.){3}[0­9]{1,3}$

background image

Metaznaki

Wyrażenia

regularne

Metaznaki (wildcards) – symbole specjalne, które powłoka zastąpi
konkretnymi znakami

^ $ ? * [ ( ) \ | {

( ) - służą do grupowania symboli
{ } - służą do określenia wielokrotności występowania
danego symbolu
\ - znak ucieczki, likwiduje znaczenie specjalne metaznaku

^ - początek wiersza
^a - łańcuchy rozpoczynające się od litery „a”

$ - koniec wiersza
a$ - łańcuchy kończące się literą „a”

background image

Metaznaki – powtarzanie zakresów

Wyrażenia

regularne

.

- dokładnie 1 znak
r.k

np. rak, ryk etc.

*

- 0 lub więcej wystąpień poprzedniego znaku
abc*

np. ab, abc, abcc, abccc etc.

+

- 1 lub więcej wystąpień poprzedniego znaku
abc+

np. abc, abcc, abccc etc., ale nie ab

?

- 0 lub 1 wystąpienie
abc? ab lub abc

{n}

- n wystąpień poprzedniego znaku
a{3}

aaa

{n,m}

- co najmniej n i co najwyżej m wystąpień poprzedniego znaku

a{2,4}

aa lub aaa lub aaaa

background image

Metaznaki – [ ]

Wyrażenia

regularne

{,n}

- co najwyżej n wystąpień poprzedniego znaku
a{,2}

a lub aa lub „pusty”

{n,}

- co najmniej n wystąpień poprzedniego znaku
a{2,}

aa lub aaa lub aaaa lub ….

[ ]

- znaki wymienione pomiędzy [ ]
a[lrs]a ala lub ara lub asa
[a-zA-Z_] duża lub mała litera lub podkreślnik

[^ ]

- wszystkie znaki poza wymienionymi pomiędzy [ ]
a[^lrs]a wszystkie oprócz: ala, ara i asa

|

- OR
ala|zosia

ala lub zosia

background image

Predefiniowane klasy znakowe

Wyrażenia

regularne

Symbol

Znaczenie

\d

cyfra

\D

inny niż cyfra (\d)

\w

litera, cyfra lub podkreślenie

\W

inny niż \w

\s

odstęp

\S

inny niż \s

Predefiniowane symbole

background image

Przykłady

Wyrażenia

regularne

Kod pocztowy

^[0­9]{2}­[0­9]{3}$

lub

^\d{2}­\d{3}$

Adres www

^www\.[­\w]+(\.[­\w]+)+$

Adres e-mail z domeny lub subdomeny pb.edu.pl

^[a­z0­9_.­]+@([a­z0­9_.­]+\.)*pb.edu.pl$

Adres IP

\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

a co z ciągami typu: 555.444.888.999?
czy to jest poprawny adres IP?

Przykłady

background image

Przykłady

Wyrażenia

regularne

Adres IP

^0*(25[0­5]|2[0­4]\d|1?\d\d?)(\.0*(25[0­5]|2[0­4]\d|1?\d\d?)){3}$

Przykłady

background image

Edytory strumieniowe

Wyrażenia

regularne

Edytory strumieniowe: sed oraz awk

Wyrażenia regularne najczęściej są wykorzystywane do przetwarzania
plików tekstowych za pomocą edytorów strumieniowych

sed

$ sed 's/a.a/bbb/' file.txt

Awk

$ awk ­F ":" '{
BEGIN { x = 0 }
/^$/ { x = x + 1 }
END { print x }
}' file.txt

background image

Wyszukiwanie wzorców

Wyrażenia

regularne

Polecenie grep

Wyszukanie linii w pliku zawierających podany wzorzec

grep [wzorzec] <plik>

Wyszukanie linii w pliku NIE zawierających wzorca

grep ­v [wzorzec] <plik>

$ grep '^r' /etc/passwd

root:x:0:0:root:/root:/bin/bash
rtkit:x:111:122:RealtimeKit,,,:/proc:/bin/false


Document Outline


Wyszukiwarka

Podobne podstrony:
03.Instrukcje i wyrazenia (4) , INSTRUKCJE i WYRAŻENIA
03.Instrukcje i wyrazenia (2) , INSTRUKCJE i WYRA?ENIA
Gimnazjum przekroj, 03. Wyrażenia arytmetyczne i kalkulator (testowe), LICZBY
Gimnazjum przekroj, 03. Wyrażenia arytmetyczne i kalkulator (testowe), LICZBY
03 Wyrazenia algebraiczne odp
03 Wyrazenia algebraiczne
03 Sejsmika04 plytkieid 4624 ppt
03 Odświeżanie pamięci DRAMid 4244 ppt
podrecznik 2 18 03 05
od Elwiry, prawo gospodarcze 03
Probl inter i kard 06'03
TT Sem III 14 03

więcej podobnych podstron