Archiwum dla kategorii » język «

Poniedziałek, 6 kwietnia, 2009 | Autor:

A colleague is looking to learn regex so I decided to put it up here. This is the first in a series of regex-related articles. In the parts to follow, we’re going to be using our Regular Expressions to learn other topics relevant to the Internet while simltaneously expanding on regex knowledge.

Regex Quick Start

  1. A pionowy pasek |, sometimes known as a pipe, is an “LUB” operator in regular expressions. It indicates that the pattern to the left OR to the right is acceptable. On the keyboard, this key is typically thecapital”, lub “shifted version”, of the backslash key.
  2. Parentheses are round brackets () that select a section of a regular expression. They can be used similarly to in mathematics when the order of operations is adjusted. The “wybór” można odwoływać się gdzie indziej jeśli zajmiemy się tym później.
  3. A kropka . Jest to specjalny znak, który pasuje każdy charakter inny niż “Nowa linia” postacie.
  4. Odwrotny ukośnik \ jest czasami nazywany ucieczka postać. Istnieje wiele znaków, takie jak nawiasach i pionowej bara, które mają szczególne znaczenie. Odwrotny ukośnik służy zabrać (ucieczka) te szczególne znaczenie. Na przykład, określić rzeczywisty kropkę, musisz uciec znak specjalny kropka: \.
  5. Gwiazda * Jest to operator, który wskazuje, że poprzedni postać może być powtarzany zero lub więcej razy. Jest to często w połączeniu z kropką do wytworzenia “dzika karta” wzór, który dopasowuje ciąg dowolnej długości: .*

Korzystanie z pionowego paska i znak escape

Tutaj mamy kilka przykładowych adresów internetowych:

http://dogma.swiftspirit.co.za/
http://swiftspirit.co.za/
http://Google  .com /

Jeśli chcę wzór pasujący im wszystko, Mógłbym użyć pionowego paska (reguła 1 powyżej) aby je rozdzielić. Chciałbym wtedy też trzeba używać znaku anulowania (reguła 4 powyżej) dla kropkami:

http://dogma.swiftspirit.co.za/|http://swiftspirit.co.za|http://Google  .com /

Powyżej będzie pasował każdy URI w moim przykładzie jednak nie jest specjalnie skuteczny lub elegancki.

Używanie nawiasów

To samo można osiągnąć za pomocą następujących, krótszy, regex, wykorzystując nawias z reguły 2 powyżej:

http://((|dogmat.)swiftspirit.co.za|Google  .com)/

Zauważ, że ja po prostu umieścić wspólne elementy, na przykład “http://” i “/”, poza wyborów.

Co zrobić, jeśli chcesz dopasować tekst, który może być cokolwiek?

Może trzeba bardziej, że nadal chcesz meczu? Na przykład, jeśli kładę http://swiftspirit.co.za/downloads/ i nadal chcę dopasować wzór do tego lub jakiegokolwiek innego URL pod moją stronę internetową. A może jest w porządku dla http://byle co.Google .com /byle co pasuje również do. Możemy użyć specjalnego kropkę i gwiazda znaków z zasadami 3 i 5 z góry:

http://((|dogmat.)swiftspirit.co.za|(|.*\.)Google  .com)/.*

Wystarczy dodać, że każda postać może pojawić się zero lub więcej razy pozwala dużo więcej mecz bez dodawania zbyt wiele do złożoności regex za:

(|.*\.)

Powyższe jest z przodu wzór google.com. Pionowy pasek wskazuje dwie opcje tutaj: albo puste (więc skończyć z tylko google.com), lub .*\. (więc mamy byle co następnie dosłownym kropka i jest następnie przez google.com).

Praktyka czyni mistrza

Możemy już zobaczyć z poprzednim przykładzie, że wyrażenie regularne może bardzo szybko stać się skomplikowane. Podobnie jak dowolnym języku, będąc w stanie łatwo odczytać wyrażenie regularne wymaga praktyki. Jeśli masz odpowiednie trzeba pracować z wyrażeń regularnych, jesteś w na ucztę.

Część 2 powinny być spowodowane w ciągu kilku dni. Będę robić niektóre bardzo pośredni “praca”, wykazywania jak gładkimi pamięci podręcznej DNS w różnych systemach.

Dzielić
Wtorek, January 13th, 2009 | Autor:

(20:19:25) A: was playing WoW on Saturday
(20:19:40) B: yea dude
(20:19:44) A: They have chat channels similar to IRC, though its specific to the area you’re in
(20:19:52) B: lol
(20:20:01) B: thats kewl
(20:20:05) A: a guy put inI can like to be wearing… “
(20:20:23) A: so I replieda jean pant
(20:20:28) B: lol
(20:20:50) A: and he repliedof ‘n rokkie
(20:21:00) A: I fell off my chair

Dzielić