Wyrażenia regularne G. Analytics

Symbole wieloznaczne

. Dopasowuje dowolny pojedynczy znak (literę, cyfrę lub symbol) Wyrażenie goo.gle dopasowuje wyrażenia gooogle , goodgle , goo8gle
* Dopasowuje zero lub większą liczbę poprzednich elementów Domyślnym poprzednim elementem jest poprzedni znak. Wyrażenie goo*gle dopasowuje wyrażenia gooogle , goooogle
+ Podobnie jak gwiazdka, z tą jednak różnicą, że znak plus musi dopasować co najmniej jeden poprzedni element Wyrażenie gooo+gle dopasowuje wyrażenie goooogle , ale nie wyrażenie google
? Dopasowuje zero lub jeden poprzedni element Wyrażenie labou? r dopasowuje zarówno wyrażenie labor , jak i wyrażenie labour
| Umożliwia dopasowanie do znaku „lub” Wyrażenie a|b dopasowuje wyrażenie a lub b

Znaki zakotwiczenia

^ Wymaga dopasowania danych do początku pola Wyrażenie ^site dopasowuje wyrażenie site , lecz nie wyrażenie mysite
$ Wymaga dopasowania danych na końcu pola Wyrażenie site$ dopasowuje wyrażenie site , lecz nie wyrażenie sitescan
Uwaga: aby zrozumieć, dlaczego znaki zakotwiczenia są ważne, warto przeczytać Porady dotyczące wyrażeń regularnych u dołu tej strony.

Grupowanie

() Użycie nawiasów okrągłych do utworzenia elementu zamiast akceptowania elementu domyślnego Wyrażenie Thank(s|you) dopasuje zarówno wyrażenie Thanks , jak i Thankyou
[] Użycie nawiasów kwadratowych do utworzenia listy elementów dopasowanych do Wyrażenie [abc] tworzy listę złożoną z wyrażeń a , b oraz c
Użycie łączników wraz z nawiasami do powiększenia listy [A-Z] tworzy listę złożoną z wielkich liter w alfabecie angielskim

Inne

\ Zamienia znak wyrażenia regularnego na zwykły znak Wyrażenie mysite\.com nie dopuszcza do tego, by kropka była symbolem wieloznacznym

Porady dotyczące wyrażeń regularnych

  1. Wyrażenia regularne powinny być jak najprostsze, by praca z nimi w przyszłości nie stwarzała kłopotów ani Tobie, ani Twoim współpracownikom.
  2. Pamiętaj o użyciu odwróconego ukośnika, jeśli występują takie znaki, jak „?” czy „.”, i mają one być dopasowywane zgodnie z ich zwykłym znaczeniem. W przeciwnym razie zostaną zinterpretowane jako znaki specjalne wyrażeń regularnych.
  3. Nie wszystkie wyrażenia regularne zawierają znaki specjalne. Można np. określić cel Analytics jako wyrażenie regularne – nawet w przypadku braku znaków specjalnych cel będzie interpretowany zgodnie z zasadami wyrażeń regularnych.
  4. Wyrażenia regularne to wyrażenia zachłanne. Na przykład wyrażenie site dopasowuje wyrażenia mysite , yoursite i sitescan . Ustanowienie wyrażenia site wyrażeniem regularnym jest równoznaczne z żądaniem dopasowania do wszystkich ciągów zawierających wyrażenie site . Aby uzyskać jak najlepsze dopasowanie, należy używać znaków zakotwiczenia we wszystkich koniecznych przypadkach. Wyrażenie ^site$ , w którym zastosowano zarówno początkowy ( ^ ), jak i końcowy ( $ ) znak zakotwiczenia, będzie rozpoczynało się od site i kończyło na site bez żadnych dodatkowych elementów. Zwróć też uwagę, że wyrażenie regularne site nie zawierało żadnych znaków specjalnych – jest ono interpretowane jako wyrażenie regularne tylko wtedy, gdy znajduje się w polu uwzględniającym wyrażenia regularne.

Przykłady wyrażeń regularnych

Poniższe przykłady pokazują sposoby korzystania z prostych wyrażeń regularnych i ich konstrukcję. W każdym przykładzie podano typ tekstu dopasowania, co najmniej jedno dopasowane wyrażenie regularne oraz uwagi, wyjaśniające zastosowanie znaków specjalnych i formatowania.

Ważne: obsługujemy tylko składnię RE2, która różni się nieco od składni PCRE. Pamiętaj, że w wyrażeniach regularnych wielkość liter jest domyślnie rozróżniana.

Uwaga: poniższe przykłady mogą być użyteczne jako punkty wyjściowe dla bardziej skomplikowanych wyrażeń regularnych. Jednak do uzyskania zgodności z jednym wyrazem zalecamy użycie ustawień Zgodność treści lub Kontrowersyjna treść.

Dopasowanie tylko do dokładnego wyrażenia
Przykład zastosowania Dopasowanie do anglojęzycznego wyrażenia stock tips (porady giełdowe).
Przykłady wyrażenia regularnego Przykład 1: (\W|^)stock\stips(\W|$)

Przykład 2:(\W|^)stock\s{0,3}tips(\W|$)

Przykł 3: (\W|^)stock\s{0,3}tip(s){0,1}(\W|$)

Uwagi
  • \W odpowiada wszelkim znakom, które nie są literą, cyfrą ani znakiem podkreślenia. Zapobiega to dopasowaniu wyrażenia regularnego do znaków przed wyrażeniem i po nim.
  • W przykładzie 2 argument /s odpowiada spacji, a {0,3} oznacza, że między słowami stock i tip może pojawić się do 3 spacji.
  • ^ odpowiada początkowi nowego wiersza. Umożliwia to dopasowanie wyrażenia regularnego do wyrażenia, jeśli znajduje się ono na początku wiersza, a przed nim nie ma żadnych znaków.
  • $ odpowiada końcowi wiersza. Umożliwia to dopasowanie wyrażenia regularnego do słowa, jeśli znajduje się ono na końcu wiersza, a za nim nie ma żadnych znaków.
  • W przykładzie 3 argument (s) odpowiada literze s, a {0,1} wskazuje, że litera ta może wystąpić 0 razy lub 1 raz po słowie tip. Dzięki temu więc wyrażenie regularne odpowiada wyrażeniom stock tip i stock tips. Możesz też użyć znaku ? zamiast {0,1}.

Dopasowanie do słowa lub wyrażenia na liście
Przykład zastosowania Dopasowanie do dowolnego słowa lub wyrażenia na następującej liście:

  • bzdury
  • cholera
  • głupota
  • podłość
  • niegodziwe oszustwo
  • chamstwo
Przykład wyrażenia regularnego (\W|^)(bzdury|cholera|głupota|podłość|niegodziwe\soszustwo|chamstwo)(\W|$)
Uwagi
  • Nawiasy (…) grupują wszystkie słowa, dzięki czemu klasa znaków \W ma zastosowanie wobec wszystkich wyrazów w nawiasie.
  • \W odpowiada wszelkim znakom, które nie są literą, cyfrą ani znakiem podkreślenia. Zapobiega to dopasowaniu wyrażenia regularnego do znaków poprzedzających słowa i wyrażenia na liście lub występujących po nich.
  • ^ odpowiada początkowi nowego wiersza. Umożliwia to dopasowanie wyrażenia regularnego do słowa, jeśli znajduje się ono na początku wiersza, a przed nim nie ma żadnych znaków.
  • $ odpowiada końcowi wiersza. Umożliwia to dopasowanie wyrażenia regularnego do słowa, jeśli znajduje się ono na końcu wiersza, a za nim nie ma żadnych znaków.
  • | oznacza „albo”, tak więc wyrażenie regularne odpowiada dowolnemu słowu na liście.
  • \s odpowiada spacji. Znak ten służy do rozdzielania słów w wyrażeniu.

Dopasowanie do słowa o zróżnicowanej pisowni lub ze znakami specjalnymi
Przykład zastosowania Dopasowanie do słowa viagra i części alternatywnych pisowni stosowanych przez spamerów, na przykład:

  • vi@gra
  • v1agra
  • v1@gra
  • v!@gr@
Przykład wyrażenia regularnego v[i!1][a@]gr[a@]
Uwagi
  • Nie podano klasy znaków, co oznacza, że przed wszystkimi wariantami słowa viagra i po nich mogą wystąpić inne znaki. Wyrażenie regularne będzie więc odpowiadać słowu viagra w następującym tekście:

viagra!! lub ***viagra***

  • [i!1] odpowiada znakom i, ! oraz 1 na drugiej pozycji w słowie.

Dopasowanie do dowolnych adresów e-mail w domenie
Przykład zastosowania Dopasowanie do dowolnego adresu e-mail w domenach yahoo.com, hotmail.com i gmail.com.
Przykład wyrażenia regularnego (\W|^)[\w.+\-]{0,25}@(yahoo|hotmail|gmail)\.com(\W|$)
Uwagi
  • \W odpowiada wszelkim znakom, które nie są literą, cyfrą ani znakiem podkreślenia. Zapobiega to dopasowaniu wyrażenia regularnego do znaków przed adresem e-mail i po nim.
  • ^ odpowiada początkowi nowego wiersza. Umożliwia to dopasowanie wyrażenia regularnego do adresu, jeśli znajduje się on na początku wiersza, a przed nim nie ma żadnych znaków.
  • $ odpowiada końcowi wiersza. Umożliwia to dopasowanie wyrażenia regularnego do adresu, jeśli znajduje się on na końcu wiersza, a za nim nie ma żadnych znaków.
  • [\w.\-] odpowiada dowolnemu znakowi wyrazowemu (a-z, A-Z, 0-9 lub znakowi podkreślenia), kropce, znakowi plusa lub łącznikowi. Są to najczęściej używane poprawne znaki w pierwszej części adresu e-mail. Pamiętaj, że fragment \- (oznaczający łącznik) musi pojawić się jako ostatni na liście znaków w nawiasach kwadratowych.
  • Znak \ przed łącznikiem i kropką wskazuje, że łącznik i kropka mają być traktowane jako zwykłe znaki, a nie znaki specjalne wyrażenia regularnego. Pamiętaj, że nie ma potrzeby takiego oznaczania kropki w nawiasach kwadratowych.
  • {0,25} oznacza, że przed znakiem @ może wystąpić od 0 do 25 znaków z określonego zestawu. Ustawienie zgodności treści poczty e-mail obsługuje dopasowywanie do 25 znaków dla każdego zestawu znaków w wyrażeniu regularnym.
  • Nawiasy (…) grupują domeny, a rozdzielający je znak | oznacza „albo”.

Dopasowanie do dowolnego adresu IP w zakresie
Przykład zastosowania Dopasowanie do dowolnego adresu IP w zakresie od 192.168.1.0 do 192.168.1.255.
Przykłady wyrażenia regularnego Przykład 1: 192\.168\.1\.
Przykład 2: 192\.168\.1\.\d{1,3}
Uwagi
  • Znak \ przed każdą kropką wskazuje, że kropka ma być traktowana jako zwykły znak, a nie znak specjalny wyrażenia regularnego.
  • W przykładzie 1 za ostatnią kropką nie ma znaków, co oznacza, że wyrażenie regularne odpowiada wszystkim adresom IP zaczynającym się od 192.168.1., niezależnie od tego, jakie cyfry pojawiają się dalej.
  • W przykładzie 2 klasa odpowiada wszystkim cyfrom od 0 do 9, występującym po ostatniej kropce, a {1,3} oznacza, że za ostatnią kropką może wystąpić od 1 do 3 cyfr. W tym przypadku wyrażenie regularne będzie dopasowane do każdego kompletnego adresu IP zaczynającego się od 192.168.1.. Należy pamiętać, że to wyrażenie regularne będzie dopasowane też do nieprawidłowych adresów IP, takich jak 192.168.1.999.

Dopasowanie do formatu alfanumerycznego
Przykład zastosowania Dopasowanie do numerów zamówienia w firmie. Numery takie mogą mieć różne formaty, na przykład:

  • PO nn-nnnnn
  • PO-nn-nnnn
  • PO# nn nnnn
  • PO#nn-nnnn
  • PO nnnnnn
Przykład wyrażenia regularnego (\W|^)po[#\-]{0,1}\s{0,1}\d{2}[\s-]{0,1}\d{4}(\W|$)
Uwagi
  • \W odpowiada wszelkim znakom, które nie są literą, cyfrą ani znakiem podkreślenia. Zapobiega to dopasowaniu wyrażenia regularnego do znaków przed liczbą i po niej.
  • ^ odpowiada początkowi nowego wiersza. Umożliwia to dopasowanie wyrażenia regularnego do liczby, jeśli znajduje się ona na początku wiersza, a przed nią nie ma żadnych znaków.
  • $ odpowiada końcowi wiersza. Umożliwia to dopasowanie wyrażenia regularnego do liczby, jeśli znajduje się ona na końcu wiersza, a za nią nie ma żadnych znaków.
  • [#\-] odpowiada znakowi funta lub łącznikowi po literach PO, a {0,1} oznacza, że jeden z tych znaków może wystąpić zero razy lub raz. Pamiętaj, że fragment \- (oznaczający łącznik) musi pojawić się jako ostatni na liście znaków w nawiasach kwadratowych.
  • \s odpowiada spacji, a {0,1} oznacza, że spacja może wystąpić zero razy lub raz.
  • \d odpowiada dowolnej cyfrze od 0 do 9, a {2} oznacza, że na tej pozycji w numerze muszą wystąpić dokładnie 2 cyfry.

Przykłady wyrażeń regularnych

Zawrzeć dane o podstronach zawierających w nazwie „dvd” o rozszerzeniu „php” lub”html”

    dvd\.(php|html)</li>

Zawrzeć dane o podstronach zaczynających się od wyrazu „podstrona”, kończących się na „.htm”, zawierających przynajmniej jedną cyfrę i nie więcej niż 4 w adresie url

    podstrona[0-9]{1,4}\.htm</li>

Chcemy zebrać dane o podstronach stworzonych według następującego schematu:

http://www.strona.pl/ksiazki/579557.html?sesja=12345
http://www.strona.pl/ksiazki/589558.html?sesja=12345
(w nazwie jest katalog “książki”, numer zaczynający się od “57″ bądź “58″ i nazwa sesji)
http://www.strona.pl/albumy/779577.html?sesja=12345
http://www.strona.pl/albumy/789578.html?sesja=12345
(w nazwie jest katalog “albumy”, numer zaczynający się od “77″ bądź “78″ i nazwa sesji)

Wyrażenie takie może mieć postać:

    /(ksiazki/57|ksiazki/58|albumy/77|albumy/78).*\.html\?sesja=.*
    

Chcemy znaleźć wszystkie słowa kluczowe, które zawierają wyraz “tanie” i wyraz “pralki”, ale nie zawierają wyrazu “agd”.

W tej sytuacji wyrażenie może wyglądać następująco:

    ^(?=.*tanie)(?=.*pralki) (?!.*agd).*$
    
Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s