Archív pre kategóriu » jazyk «

Monday, April 06th, 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 zvislá čiara |, sometimes known as a pipe, is an “OR” 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”, alebo “shifted version”, of the backslash key.
  2. Parentheses are round brackets () that select a section of a regular expression. Môžu byť použité podobne ako v matematike, kedy poradie operácií upraví. The “výber” možno odkazovať inam keď sa budeme zaoberať neskôr.
  3. A bodka . je špeciálny znak, ktorý zodpovedá akýkoľvek znak iný ako “Nový riadok” znaky.
  4. spätné lomítko \ je niekedy nazývaný uniknúť znak. Existuje mnoho znakov, ako sú v zátvorkách a vertikálnej lište nad, ktoré majú osobitný význam. Spätné lomítko sa používa, aby vzali (uniknúť) tieto osobitný význam. Napríklad, určiť skutočnú bodku, je potrebné, aby sa vyhli špeciálnou bodku: \.
  5. Hviezda * je operátor, čo znamená, že predchádzajúci znak sa môže opakovať alebo opakovanú. To je často v kombinácii s bodkou produkovať “divoká karta” vzor, ktorý zodpovedá reťazec ľubovoľnej dĺžky: .*

Použitím zvislý pruh a znak escape

Tu máme niekoľko vzorových webových adries:

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

Ak budem chcieť vzor, ​​ktorý ich všetky zodpovedá, Mohol by som použiť na zvislý pruh (pravidlo 1 vyššie) oddeliť. Ja by som potom tiež nutné použiť znak escape (pravidlo 4 vyššie) pre bodiek:

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

Výška bude zodpovedať každý URI v mojom príklade však to nie je špecificky účinné alebo elegantné.

používanie zátvoriek

To isté môže byť dosiahnuté nasledujúcim, kratšie, regex, využitím zátvorka z pravidla 2 vyššie:

http://((|dogma .)swiftspirit  .CO  .za|Google  .com)/

Všimnite si, že som jednoducho vloží bežné predmety, napríklad “http://” a “/”, mimo výbery.

Čo keď chcete, aby zodpovedali textu, ktoré by mohli byť čokoľvek?

Možno, že máte viac, že ​​si napriek tomu chcete, aby zodpovedali? Napríklad, keď som dal http://swiftspirit.co.za/downloads/ a stále chcem vzor tak, aby zodpovedala či akúkoľvek inú adresu URL na základe mojich webových stránkach. Alebo možno jej poriadku http://čokoľvek.google.com/čokoľvek tiež zodpovedali. Môžeme použiť špeciálne bodka a hviezdy znaky z pravidiel 3 a 5 zhora:

http://((|dogma .)swiftspirit  .CO  .za|(|.*\.)Google  .com)/.*

Jednoducho tým, že akákoľvek postava sa môže objaviť nula alebo viackrát umožňuje oveľa väčšiu zápas bez pridania príliš zložité regex je:

(|.*\.)

Vyššie uvedené je z pred google.com vzoru. Zvislá čiara označuje dve možnosti tu: buď prázdny (takže sme nakoniec len s google.com), alebo .*\. (takže máme čokoľvek nasledoval doslovný bodkou, ktorá je potom nasleduje google.com).

Cvičenie robí majstra

Už teraz môžeme vidieť z posledného príkladu, že regulárny výraz môže veľmi rýchlo stať zložitá. Podobne ako akýkoľvek jazyk, je ľahko schopný čítať regulárny výraz vyžaduje prax. Ak máte relevantné potrebu pracovať s regulárnymi výrazmi, ste v pre liečbu.

Časť 2 by mala byť splatná v niekoľkých dňoch. Budem robiť niektoré veľmi nepriama “práca”, preukazujúce, ako vyprázdnenie DNS cache v rôznych systémoch.

podiel
Tuesday, 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

podiel