eACloud
  • Baza Wiedzy eAuditor Cloud
  • Rozpoczęcie pracy
    • Szybki start
      • Instalacja i wdrożenie usługi eAgent
      • Zarządzanie Organizacją, Administratorami, Uprawnieniami
      • Zarządzanie komputerami i urządzeniami
      • Zarządzanie użytkownikami
      • Filtrowanie w systemie
      • Konfiguracja i generowanie raportów
      • Powiadomienia
    • Gdzie szukać pomocy technicznej?
  • Funkcje
    • Infrastruktura IT
      • Komputery
        • Karta szczegółowa
        • Protokoły
        • Wiadomości
      • Urządzenia
        • Karta szczegółowa
      • Użytkownicy
        • Karta Szczegółowa
    • Zarządzanie IT
      • Zapora sieciowa
      • Szyfrowanie
      • Serwer aktualizacji
      • Serwer instalacji
      • Serwer zadań
      • WebRTC
        • Funkcjonalności WebRTC
    • Automatyzacja
      • Start
        • Polityki
        • Wyzwalacze
        • Akcje
        • Powiadomienia
        • Poziomy ryzyka
        • Edycja
      • Polityki i reguły
        • Wyzwalacze
        • Akcje
        • Powiadomienia
      • Logi
    • Ochrona przed wyciekiem danych
      • Start
        • Polityki
        • Wyzwalacze
        • Akcje
        • Powiadomienia
        • Poziomy ryzyka
        • Edycja
      • Polityki i reguły DLP
        • Wyzwalacze
          • Drukowanie
          • Harmonogram
          • Kopiowanie
          • Operacje na pliku
            • Maski
          • Podłączenie do sieci
          • Podłączenie pamięci USB
          • Podłączenie urządzenia
          • Przekroczenie czasu pracy
          • Przeglądanie strony WWW
          • Transfer sieciowy
          • Uruchamiany proces/aplikacja
          • Wysłanie pliku
          • Zrzut ekranu
        • Akcje
          • Znakowanie dokumentów
            • Wyrażenia regularne
        • Powiadomienia
      • Logi DLP
    • Monitorowanie IT
      • Aplikacje
      • Drukowanie
      • Dzienniki zdarzeń
      • Harmonogram zdarzeń
      • Historia logowań
      • Poczta wychodząca
      • RDP
      • Serwery WWW
      • Strony WWW
      • Transfer sieciowy
      • USB
      • Usługi
      • Wydajność
    • Narzędzia
      • Raporty
      • Import danych
      • Logi systemowe
      • Ustawienia
        • Focus
        • Tagi
        • Work Time Manager
        • Przechowywanie logów
        • Ustawienia monitoringów
        • Drukowanie
    • Zarządzanie kontami
      • Profil użytkownika
      • Zespoły
      • Rozliczenia
  • SYSTEM
    • Change Log
      • Wersja 1.0.16
      • Wersja 1.0.15
      • Wersja 1.0.14
      • Wersja 1.0.13
      • Wersja 1.0.12
      • Wersja 1.0.11
      • Wersja 1.0.10
      • Wersja 1.0.9
      • Wersja 1.0.8
      • Wersja 1.0.7
      • Wersja 1.0.6
      • Wersja 1.0.5
      • Wersja 1.0.4
      • Wersja 1.0.3
      • Wersja 1.0.2
      • Wersja 1.0.1
      • Wersja 1.0.0
    • Samouczki wideo
    • Rozliczenia i licencjonowanie
    • FAQ
Powered by GitBook
On this page
  • Podstawy składni wyrażeń regularnych
  • Znaki specjalne (metaznaki) – np.:
  • Kwantyfikatory:
  • Granice słowa (\b)
  • Omówienie przykładowych wyrażeń regularnych
  • Jak tworzyć własne wyrażenia regularne?
  • Podsumowanie

Was this helpful?

  1. Funkcje
  2. Ochrona przed wyciekiem danych
  3. Polityki i reguły DLP
  4. Akcje
  5. Znakowanie dokumentów

Wyrażenia regularne

[Strona w budowie]

Poniżej znajdziesz omówienie najważniejszych elementów wyrażeń regularnych (tzw. regexów) na przykładzie podanych wzorców oraz wyjaśnienie, jak w ogóle podchodzi się do ich tworzenia. Dzięki temu łatwiej zrozumiesz, dlaczego pewne fragmenty wyglądają tak, a nie inaczej i jak działają „pod maską”.


Podstawy składni wyrażeń regularnych

Znaki specjalne (metaznaki) – np.:

  • ^ – początek ciągu lub linii (w zależności od trybu),

  • $ – koniec ciągu lub linii,

  • . – dowolny znak (zwykle poza znakiem nowej linii),

  • \b – granica słowa (tzw. word boundary),

  • \d – odpowiada cyfrom ([0-9]),

  • \s – odpowiada białym znakom (spacja, tabulator, nowa linia itp.),

  • \w – odpowiada „słowotwórczym” znakom (litery, cyfry, podkreślnik),

  • [...] – klasa znaków, np. [0-9] oznacza dowolną cyfrę z przedziału 0–9,

  • (...) – grupowanie lub tzw. grupa przechwytująca (ang. capturing group),

  • (?:...) – grupa nieprzechwytująca (non-capturing group),

  • | – alternatywa (logiczne „lub”),

  • *, +, ?, {n}, {n,m} – kwantyfikatory (opisują, ile razy ma się powtórzyć dany fragment).

Kwantyfikatory:

  • * – 0 lub więcej powtórzeń,

  • + – 1 lub więcej powtórzeń,

  • ? – 0 lub 1 powtórzenie,

  • {n} – dokładnie n powtórzeń,

  • {n,} – co najmniej n powtórzeń,

  • {n,m} – od n do m powtórzeń.

Granice słowa (\b)

Jest to specjalny „znak” regexu, który wskazuje na przejście między znakami słowa (literami, cyframi, znakiem podkreślenia) a znakami niebędącymi słowem (spacją, znakiem interpunkcyjnym itp.) lub na początek/koniec ciągu.

  • \b\d{2}-\d{3}\b oznacza: szukaj dokładnie dwóch cyfr, myślnika, trzech cyfr i sprawdź, czy na początku i końcu tego wzorca jest granica słowa.


Omówienie przykładowych wyrażeń regularnych

Wzorzec PESEL

\b[0-9]{11}\b
  • \b na początku i na końcu – upewnia się, że pasujące cyfry są wyodrębnione jako całe słowo (innymi słowy – przed i po tym ciągu nie ma dalszych znaków słowa).

  • [0-9]{11} – szukamy ciągu dokładnie 11 cyfr (od 0 do 9).

Zastosowanie: Znajdzie ciąg typu 98012345678, ale nie dopasuje czegoś takiego jak 12345678901abc (ponieważ zaraz po cyfrach jest litera, więc nie ma granicy słowa).


Adres e-mail

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • [a-zA-Z0-9._%+-]+ – jedna lub więcej (+) liter (małe i duże), cyfr, kropek, podkreśleń, procentów, plusów, minusów. Krótko mówiąc, znaki dozwolone w większości adresów e-mail w części przed „@”.

  • @ – dosłownie znak „małpy”.

  • [a-zA-Z0-9.-]+ – jedna lub więcej liter (małe/duże), cyfr, kropek lub myślników w części domenowej (np. gmail.com, moj-serwer.pl itp.).

  • \. – znak kropki (przed kropką mamy backslash, żeby „.” nie oznaczało dowolnego znaku).

  • [a-zA-Z]{2,} – co najmniej dwie litery jako końcówka domeny, np. .pl, .com, .info.

Zastosowanie: Wykryje adresy e-mail w typowym formacie, np. john.smith@example.com. Nie sprawdza jednak szczegółowych reguł (np. nie dopuszcza znaków narodowych) i nie weryfikuje, czy dana domena rzeczywiście istnieje.


Numer telefonu (np. 123-456-789)

\b\d{3}[-.\s]?\d{3}[-.\s]?\d{3}\b
  • \b – granica słowa.

  • \d{3} – trzy cyfry.

  • [-.\s]? – znak myślnika, kropki lub spacji, który może wystąpić 0 lub 1 raz. Dzięki temu dopuszczamy formaty w rodzaju 123 456 789, 123-456-789, czy 123.456.789.

  • Ponownie \d{3}[-.\s]? – kolejne trzy cyfry i opcjonalny separator.

  • \d{3} – ostatnie trzy cyfry.

  • \b – koniec słowa.

Zastosowanie: Znajdzie numer telefonu podzielony na bloki 3-cyfrowe, a dzięki ? (opcjonalnym separatorom) zignoruje format zapisu separatora (spacja, myślnik, kropka) lub jego brak.


Adres IPv4

\b((25[0-5]|2[0-4]\d|[0-1]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d?\d)\b

Możesz też spotkać zapis:

\b((25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\b
  • Konstrukcja 25[0-5] pozwala na dopasowanie liczb z zakresu 250–255,

  • 2[0-4]\d – liczby 200–249,

  • [0-1]?\d?\d – liczby 0–199 (w uproszczeniu).

  • ( ... )\. – taka grupa zakończona kropką i powtórzona {3} razy oznacza, że mamy cztery oktety (każdy z nich musi spełniać warunek powyższy) oddzielone kropkami.

  • \b – granica słowa na początku i końcu, aby przypadkowo nie „wyłapać” czegoś, co w środku nie jest adresem.

Zastosowanie: Takie wyrażenie sprawdza, czy mamy do czynienia z prawidłowym adresem IPv4 w rodzaju 192.168.1.1 czy 255.255.255.255, a nie np. 256.300.1.999.


Numer karty kredytowej

\b(?:\d[ -]*?){13,16}\b
  • \b – granica słowa.

  • (?: ...) – grupa nieprzechwytująca (tzw. non-capturing). Nie tworzy odrębnego „grupowania” zapisywanego w pamięci, jedynie mówi regexowi, co ma powtarzać.

  • \d[ -]*? – jedna cyfra, po której może wystąpić dowolna liczba myślników, spacji itp. (zmodyfikowane przez *?, co oznacza „minimalne dopasowanie” – lazy quantifier). Dzięki temu możemy przeskakiwać po ewentualnych separatorach (spacjach, myślnikach) w numerach kart.

  • {13,16} – szukamy takich ciągów od 13 do 16 „bloków” (cyfr) w sumie.

  • \b – ponownie granica słowa.

Zastosowanie: Pozwala znaleźć ciąg cyfr długości 13–16, nawet jeśli jest zapisywany z myślnikami czy spacjami, np. 1234-5678-1234-5678, 1234 5678 1234 9999 lub 1234567890123456.


Kod pocztowy w formacie polskim (XX-XXX)

\b\d{2}-\d{3}\b
  • \b – granica słowa.

  • \d{2} – dwie cyfry.

  • - – dosłownie myślnik.

  • \d{3} – trzy cyfry.

  • \b – koniec słowa.

Zastosowanie: Znajdzie polski kod pocztowy typu 01-234, 50-001 itp. Nie weryfikuje co prawda, czy kod pocztowy realnie istnieje, ale sam format jest prawidłowy.


Jak tworzyć własne wyrażenia regularne?

  1. Określ dokładny wzorzec, jaki chcesz wyłapać. Zastanów się, jakie reguły musi spełniać ciąg znaków (czy wszystkie to cyfry, czy litery, jaka jest dopuszczalna długość, czy występują separatory itd.).

  2. Wybierz odpowiednie klasy znaków. Jeśli potrzebujesz tylko cyfr, używaj \d lub [0-9]. Gdy chcesz liter, zastanów się, czy w grę wchodzą tylko małe/duże, czy również polskie znaki diakrytyczne.

  3. Zastosuj kwantyfikatory (ile razy powtarza się dany wzorzec?).

    • Dokładnie określ minimalną i maksymalną liczbę powtórzeń za pomocą {m,n}.

    • Jeśli ma występować separator opcjonalnie, zastosuj ?.

    • Jeżeli znak może powtórzyć się wiele razy, rozważ * lub +.

  4. Użyj granic (np. ^, $, \b) By uniknąć dopasowań w środku innego tekstu, sprawdź, czy potrzebna jest granica słowa \b bądź początek/koniec ciągu ^ ... $.

  5. Testuj krok po kroku. Możesz skorzystać z narzędzi online (np. regex101.com), żeby widzieć, jak Twoje wyrażenie łapie (lub nie) konkretne przykłady.


Podsumowanie

Wyrażenia regularne pozwalają w bardzo precyzyjny (choć czasem nieco skomplikowany) sposób definiować, co chcemy „wyłapać” z tekstu. Każdy z powyższych przykładów:

  • Wykorzystuje klasy znaków ([0-9], [a-zA-Z], \d, itp.).

  • Definiuje liczbę powtórzeń poprzez kwantyfikatory (+, {n}, {n,m}).

  • Stosuje granice słowa \b, by dopasować całe byty (jak cały PESEL czy cały kod pocztowy), a nie fragmenty dłuższego ciągu.

Gdy zrozumiesz działanie podstawowych elementów (klasy znaków, kwantyfikatory, grupy, granice), tworzenie i dostosowywanie wyrażeń regularnych do własnych potrzeb stanie się znacznie prostsze.

Jeśli dopiero zaczynasz, polecam przetestować każde z tych wyrażeń „na żywo” w jakimś regex-testerze online, wpisując przykładowe dane i patrząc, które fragmenty tekstu się „zaznaczają”. Dzięki temu szybko zobaczysz, jak drobna zmiana w regexie wpływa na dopasowanie.

PreviousZnakowanie dokumentówNextPowiadomienia

Last updated 5 months ago

Was this helpful?