Wprowadzenie do wyrażeń regularnych

Marcin
Lewandowski

Marcin
Lewandowski

Marcin Lewandowski

  • programista z ponad 15 letnim doświadczeniem,
  • tworzę i rozwijam systemy dla logistyki, 
  • prowadzę bloga czterytygodnie.pl

Uczestnicy

  • Imię i nazwisko
  • Jaki jest dla mnie cel szkolenia ?
  • Czy udało mi się wypełnić Kwestionariusz Oczekiwań przed szkoleniem ?
  • Gdzie i w jaki sposób będę wykorzystywać wiedzę ze szkolenia ?
  • Co aktualnie wiem o temacie szkolenia ?
  • Jakie wykorzystuję oprogramowanie związane z tematem szkolenia ?

Marcin
Lewandowski

Informacje organizacyjne

Marcin
Lewandowski

Plan szkolenia

  1. Wprowadzenie
    1. Czym są wyrażenia regularne ?
    2. W czym może pomóc Ci RegEx ?
    3. Jak działa silnik RegEx
    4. Narzędzia
  2. Wyszukiwanie ciągów znaków
  3. Klasy znaków
    1. Zbiory
    2. Zakresy
    3. Białe znaki
    4. Skrótowe klasy znaków
    5. Kropka
  4. Alternatywy
  5. Powtórzenia
  6. Zachłanność
  7. Grupy

Marcin
Lewandowski

Na zakończenie szkolenia

Marcin
Lewandowski

Wprowadzenie

Czym są wyrażenia regularne ?

opis ciągu znaków

399,00 zł

jak opiszecie powyższy ciąg znaków ??

Czym są wyrażenia regularne ?

opis ciągu znaków

takiego opisu nie zrozumie komputer :(

Czym są wyrażenia regularne ?

opis ciągu znaków

W czym może pomóc RegEx ?

  • sprawdzenie tekstu ze wzorcem, czyli sprawdzenie poprawności danych,

 

  • odnajdowanie wzorca w tekście, pozwala na znalezienie np. wszystkich adresów e-mail w tekście

 

  • fragmentacja tekstu, wyciągnięcie fragmentów danych ze wzorców, np. Apple iPhone 6s 32GB wyciągamy informację o 32GB

 

  • zamiana tekstu, pozwala na transformację danych na dane w jednym formacie np. ujednolicenie formatu daty, numeru telefonu

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Jak działa silnik RegEx ?

Narzędzia

Wyszukiwanie ciągów znaków

Wyszukiwanie ciągów znaków

odpowiednik ctrl + f w wyszukiwarce

IPHONE 7+ 32GB | WYBÓR KOLORÓW | GRATIS | KLASA A+

Flagi

Flagi

g – global

pozwala na wielokrotne wyszukiwanie wzorca

Flagi

m – multi line, zmienia zachowanie ^ oraz $, po włączeniu flagi znak ^ oznacza początek linii, a $ koniec linii

Flagi

i – insensitive, włącza niewrażliwość na wielkość liter

Flagi

s – single line, po włączeniu kropka zastępuje także znak nowej linii

Flagi

u – unicode, dodaje do zakresu \w także znaki narodowe

Flagi

U – ungreedy, zmienia domyślny tryb działania z zachłannego na niezachłanny

Klasy znaków

Zbiory

Klasy znaków

[ ...lista elementów... ]

[0123456789]

Zbiory

Klasy znaków

[ ] vs [ ]+ vs [ ]*

Zakresy

Klasy znaków

[0123456789]

[0-9]

Zakresy

Klasy znaków

[a-zA-Z]

[a-z0-9]

Białe znaki

Klasy znaków

\ – spacja

\t – tabulacja

\n – nowa linia (ang. line feed – LF)

\r – powrót karetki (ang. carriage return – CR).

 

Należy zwrócić uwagę, że różne systemy operacyjne zapisują znak nowej linii w nieco inny sposób.

 

Unix / Linux / Mac OS X (LF) – \n

Mac OS (CR) – \r

Windows (CR LF) – \r\n

Skrótowe klasy znaków

Klasy znaków

\d – cyfry,
\D – wszystko poza cyframi,
\w – cyfry i litery (włączona flaga Unicode dodaje znaki narodowe),
\W – wszystko poza cyframi i literami (włączona flaga Unicode dodaje znaki narodowe),
\s – białe znaki,
\S – wszystko poza białymi znakami

Kropka

Klasy znaków

Specjalny znak, który jest w stanie zastąpić każdy inny, poza jednym drobnym wyjątkiem. Tym wyjątkiem jest znak nowej linii.

Alternatywy

Alternatywy

Alternatywy mają swój znak specjalny, którym rozdzielamy kolejne warunki

|

iphone 7\+

iphone 7 plus

Powtórzenia

Powtórzenia

\d{1}

Powtórzenia

\d{1,5}

\d{1,}

Powtórzenia

{0,1} możemy zapisać za pomocą ?

{1,} możemy zapisać za pomocą +

{0,} możemy zapisać za pomocą * 

Zachłanność

Zachłanność

?

Grupy

Grupy

( )

Grupy

( )+ ( )*

Kotwice

Kotwice

^ - dopasowanie początku tekstu

$ - dopasowanie końca tekstu

Kotwice

Granice

Granice

\b

określa granicę słowa

Granice

\b + unicode

Dziękuję :)

kurs-rabbitmq.pl

RegEx - NobleProg

By Marcin Lewandowski

RegEx - NobleProg

  • 411