FAQ - Często zadawane pytania

Go Back

Filtrowanie za pomocą wyrażeń regularnych (REGEX)

Uwaga: aby korzystać z funkcji filtrowania REGEX upewnij się czy posiadasz oprogramowanie w wersji 2.1.8.5 lub wyższej. Wersję programu można sprawdzić w dziale "Pomoc > O programie" oraz zaktualizować za pomocą menu "Pomoc > Sprawdź dostępnośc aktualizacji".


Artykuł ten opisuje możliwość najbardziej uniwersalnego filtrowania przy użyciu wyrażeń regularnych regex. Ponieważ pewne znaczniki REGEX mogą się nieznacznie różnić w zależności od implementacji, należy zwrócić uwagę, że aplikacja eXdomain wykorzystuje składnię odpowiednią dla platformy Microsoft .NET.


Aplikacja eXdomain pozwala na skanowanie ponad kilkaset tysięcy domen jednocześnie, aby ułatwić wyselekcjonowanie najbardziej wartościowych przygotowaliśmy kilkanaście różnych filtrów pozwalających na sformułowanie nieograniczonej liczby kombinacji kryteriów dopasowanych do indywidualnych potrzeb każdego użytkownika.


Filtr regex można znaleźć w sekcji filtrów leksykalnych w oknie "Filtr i sortowanie". Filtr ten posiada tylko jedno pole nazwane "Spełnia wyrażenie", co oznacza, że na naszej liście pozostaną jedynie te domeny, które spełniają wyrażenie regularne wprowadzone w tym polu.


Filtr ten pozwala wybrać domeny na podstawie wartości z kolumny adres z uwzględnieniem całej zawartości tzn. domeny z rozszerzeniem i ewentualnym przedrostkiem np. www.onet.pl, wp.pl czy di.com.pl. Formułując wyrażenie regularne możemy podać kryterium określające ilość liter, cyfr, rodzaje liter, poszczególne człony wyrazów lub wzorce, które chcemy, aby występowały w wybranych domenach.



Przykład użycia filtru wyrażeń regularnych (REGEX)


1) Uruchom skanowanie dla wybranej listy domen (lub otwórz wyniki z historii)



2) W trakcie lub po zakończeniu skanowania uruchom filtrowanie w sekcji "Filtr i sortowanie" klikając na przycisk"Filtr".



3) Wprowadź wyrażenie regularne w polu "Spełnia regex:". Na przykład wyrażenie "^.*g+\.+com$" odfiltruje domeny zawierające w nazwie jako ostatnią literę "g" oraz rozszerzenie ".com"



4) Kliknij w następnym polu, aby zatwierdzić wprowadzoną wartość


5) Aplikacja odfiltruje domeny spełniające twoje kryterium



Ponieważ poziom skomplikowania wyrażeń REGEX może być bardzo duży, poniżej zamieściliśmy tylko kilka przykładowych mogących stanowić bazę do dalszej rozbudowy. Każde wyrażenie powinno zaczynać się znakiem "^" oraz kończyć znakiem "$". Poniższa tabela prezentuje przykładowe wyrażenia.



Przykładowe wyrażenia


Wyrażenie

Znaczenie

^.*\.+[com]*$

Wybierz domeny składające się z dowolnego ciągu znaków („.*”) oraz zakończonych dowolną kombinacją liter „c”, „o” oraz „m” („[com]”). Wyrażenie to wybierze domeny ****.com, ****.co, ****.cm itd….

^\d\d\d.*$

Wybierz domeny zaczynające się trzema cyframi np. 123people.com

^\d{3}p.*$

Wybierz domeny zawierające 3 cyfry następnie literę „p” oraz dowolne znaki

^[^i]*$

Wybierz domeny nie zawierające litery „i”

^[^i]*\.{1}(ch|pl)$

Wybierz domeny nie zawierające litery „i” oraz zakończone rozszerzeniem „.ch” lub „.pl”

^.*ce+.*\.{1}(ch|pl)$

Wybierz domeny zawierające w nazwie „ce” oraz zakończone rozszerzniem „.ch” lub „.pl”.



Kluczowe symbole


Charakter

Opis

\

Pozwala zamienić znaczenie znaku specjalnego na znak szukany w tekście. Na przykład kropka domyślnie oznacza dowolny znak, chcąc szukać domeny z kropką użyjemy „\.” przykładowo tylko liczbowe domeny „.com” wyrażenie: „^\d*\.com”

^

Rozpoczyna wyrażenie regularne

$

Kończy wyrażenie regularne

*

Akceptuje domeny, w których znaki poprzedzające występują zero lub więcej razy na przykład „zo*” wybierze „z” oraz „zoo”

+

Akceptuje domeny, w których znaki poprzedzające występują raz lub więcej razy na przykład „zo+” wybierze „zoo” ale nie „z”.

?

Akceptuje domeny, w których znaki poprzedzające występują zero lub jeden raz na przykład „a?ve?” wybierze „ve” w wyrazie „never”

.

Dowolny pojedynczy znak

x|y

Akceptuje jeden z dwóch lub więcej wyrażeń. Na przykład (ch|pl|com) wybierze tekst zawierający „ch” lub „pl” lub „com”

{n}

n – powinno być liczbą większą od zera. Symbol oznacza, że wyrażenie poprzedzające musi wystąpić n-razy. Na przykład „o{1}” oznacza pojedyncze wystąpienie litery „o”.

{n,}

n - to nie ujemna liczba całkowita. Symbol akceptuje domeny zawierające minimum "n" razy poprzedzające znaki. Przykładowo: "o{2,}" zaakcpetuje domeny "google.com" oraz "goooogle.com" ale odrzuci "gogle.com".

{n,m}

m i n - to nie ujemne liczby całkowite. Symbol akceptuje od n do m wystąpień poprzedzających znaków w nazwie domeny. Na przykład: "o{1,3}" wybierze domeny zawierające od 1 do 3 liter "o" takie jak "google".

[xyz]

Znajduje domeny zawierające dowolny z podanych znaków. Na przykład „^[ancrekj]\.{1}pl$” wybierze domenę “cern.pl” oraz „kran.pl” ale już nie „dom.pl”

[^xyz]

Dowolne znaki inne niż “x”, “y”, “z”

[a-z]

Dowolne znaki z przedziału od „a” do „z”

[^m-z]

Dowolne znaki inne niż te z przedziału od „m” do „z”

\d

Dowolna cyfra. Odpowiednik [0-9]

\D

Dowolny znak nie będący cyfrą. Odpowiednik [^0-9]

\w

Akceptuje dowolny wyraz z podkreśleniami i cyframi. Odpowiednik: „[A-Za-z0-9_]”.

\n

Akceptuje dowolny znak z tablicy ASCII o symbolu określonym liczbą podstawioną za „n” składającą się z 1, 2 lub 3 cyfr. Np. „\011”.

\xn

Akceptuje dowolny znak z tablicy ASCII o symbolu określonym liczbą szesnastkową podstawioną za „n”. Np. „\x42”.

\un

Akceptuje dowolny znak z Unicode o symbolu określonym liczbą szesnastkową podstawioną za „n”. Np. „\x42”.



Informacje dodatkowe


Opis teoretyczny wyrażeń regularnych
http://pl.wikipedia.org/wiki/Wyra%C5%BCenie_regularne

Podstawowe znaczniki REGEX w platformie .NET
http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet



Podziel się: Facebook Twitter DZone It! Digg It! StumbleUpon Technorati Del.icio.us NewsVine Reddit Blinklist Add diigo bookmark