Úvodná » kódovanie » Príručka pre začínajúcich používateľov regulárneho výrazu (Regex)

    Príručka pre začínajúcich používateľov regulárneho výrazu (Regex)

    Regulárny výraz je súbor znakov tvoriaci vzorec, ktorý možno vyhľadávať v reťazci. Regex môže byť použitý pre validácia ako napríklad overenie čísel kreditných kariet Vyhľadávanie tj prostredníctvom zložitých textových zhody a za nahrádzať zodpovedajúci text s iným reťazcom. Má tiež vynikajúcu podporu viacerých jazykov - naučte sa to raz a môžete ju používať v mnohých programovacích jazykoch.

    Videl som niekoľko ľudí, ktorí sa prvýkrát pozreli na regex a úplne to ignorovali. Neviním im; regex syntax je zložitý a bude robiť veľa zhŕňať rovnako ako tie jazyky príkazového riadku, len horšie. Ale potom každá nová vec je desivá a zdá sa, že sa nemôže najprv naučiť. Takže, požičiavam Horatiusove slová, poviem to; Začnite byť odvážni a snažte sa byť múdry.

    O spoločnosti Regex

    Regex mal svoje korene v oblasti neurovedy a matematiky a bol implementovaný iba v roku 1968 programom Ken Thompson v textovom editore QED pre textové vyhľadávanie. Teraz je súčasťou mnohých programovacích jazykov, ako sú Perl, Java, Python, Ruby a JavaScript.

    Pozrime sa na niekoľko príkladov o tom, ako funguje regex.

    V mojich príkladoch budem používať JavaScript. Teraz, aby ste zažili úroveň začiatočníkov, musíte sa naučiť všetko znakov, tried, kvantifikátorov, modifikátorov a metód používané v regexu. Tu je odkaz na stránku Regular Expression siete Mozilla Developer Network, kde si môžete prezrieť tabuľku obsahujúcu všetky tieto. Môžete tiež odkazovať na cheatsheet na konci tohto príspevku s najpoužívanejšími znakmi.

    Pozrime sa na jednoduchý príklad s vysvetlením. Toto je regex.

    To je to, čo vyššie uvedený regex bude hľadať v riadku, znak "B", za ktorým nasleduje aspoň jeden znak od (a vrátane) 'a' až 'z', 'A' až 'Z' 9.

    Tu je vzorka zápasov v zvýraznenom riadku:

    košík, žiarovka, B12 vitamín, BaSO4, N BC spoločnosť

    Uvedený regex zastaví vyhľadávanie košík a vrátiť pozitívnu odpoveď. To je preto, lebo globálny modifikátor "g"sa musí špecifikovať ak chcete, aby regex hľadal všetky možné zápasy.

    Teraz sa pozrime, ako používať tento výraz v jazyku JavaScript. test metóda ide: ak sa nájde návrat zápasu pravdivý, inak nepravdivý.

     var vstup = "testovací reťazec", regex = / B [a-zA-Z \ d] + /; ak (! regex.test (input)) alert ('Nebolo nájdené'); else alert ('Zhoda je nájdená');

    Vyskúšaj inú metódu: zápas vracia zhody nájdené v poli.

     var vstup = "váš testovací reťazec", regex = / B [a-zA-Z \ d] + / g, / * Pridal som globálny modifikátor 'g' input.match (regex); ak (ary === null) upozornenie ('Zhoda sa nenašla'); else alert ('súbory sú:' + ary.toString ());

    Čo o reťazci vymeniť? Skúsme to s regexom teraz.

     var vstup = "testovací reťazec", regex = / B [a-zA-Z \ d] + / g; upozornenie (vstupná adresa (regex, "#"));

    Nižšie nájdete kódový kód, ktorý môžete vyladiť. Kliknutím na kartu "JavaScript" zobrazíte kód JS.

    cvičenie

    Pre cvičenie môžete Google “regex cvičenia” a pokúste sa ich vyriešiť. Tu je to, čo môžete očakávať pri pokuse o tieto cvičenia, podľa úrovní obtiažnosti.

    základné

    Na to, aby som bol schopný overiť heslo stačí na začiatok. Takže overte heslo pre dĺžku 8 až 16 znakov, alfanumerické s povoleným výberom špeciálnych znakov.

    prechodný

    Toto je miesto, kde by ste mali praktizovať viac údajov z reálneho sveta a učiť sa niekoľko ďalších regexových bodov lookahead, lookbehind tvrdenia a zodpovedajúce skupiny;

    • Overenie kódov PIN, hexadecimálov, dátumov, ID e-mailu, pohyblivého bodu.
    • Nahraďte koncovú nulu, bielu oblasť, súbor zodpovedajúcich slov
    • Extrahujte rôzne časti adresy URL

    pokročilý

    Môžete optimalizovať riešenia vyššie uvedených cvičení - najvhodnejší regex pre e-mail má tisíce znakov v ňom - ​​tak vziať to tak ďaleko, ako sa cítite dobre a to stačí. Môžete tiež vyskúšať:

    • Parsovanie HTML alebo XML (aj keď v reálnom svete sa to odrádza, pretože použitie regulárneho výrazu na analýzu nepravidelného jazyka, ako je HTML, nikdy nebude robiť to foolproof.Plus XML analýza je ťažká úloha, vhodnejšia pre pokročilých používateľov)
    • Nahradenie značiek
    • Odstránenie komentárov (okrem IE podmienených komentárov)

    náradie

    Nástroje pre vizualizovať regex sú jedným z najkrajších vecí pre mňa. Ak narazíte na dlhý komplexný regex, stačí ho skopírovať do jedného z týchto nástrojov a jasne si budete môcť prezrieť tok. Okrem toho existuje veľa nástrojov, ktoré môžete použiť na manipuláciu s regexovým kódom. Tiež predstavujú príklady a cheatsheets spolu s funkciami zdieľania.

    • Debuggex - Vykresľuje regexový diagram podľa vášho vstupu a môžete rýchlo zdieľať StackOverflow hneď odtiaľ.
    • RegExr - Môžete otestovať svoj regex s týmto. Má tiež odkaz, cheatsheet a príklady, ktoré vám pomôžu.
    • Refiddle - V súčasnej dobe, okrem JavaScriptu, môžete tiež bežať s verziami regexu Ruby a .NET v nej.

    Regex Cheatsheet

    žetón definícia
    [Abc] Každý jeden znak a, b alebo c
    [^ Abc] Akékoľvek iné znaky ako a, b alebo c
    [A-Z] Znak medzi (vrátane) a až z
    [^ A-Z] Znak okrem a až z
    [A-Z] Znak medzi (vrátane) od A do Z
    . Každý jeden znak
    \ s Akékoľvek znaky medzery
    \ S Akýkoľvek znak bez medzery
    \ d Akákoľvek číslica 0 až 9
    \ D Akékoľvek číslice
    \ w Každý znak slova (písmeno, číslo & podčiarknutie)
    \ W Akýkoľvek neslovný znak
    (...) Zachyťte všetko uzavreté
    (A | b) Zhodte buď a alebo b
    ? Znak a je buď neprítomný alebo prítomný raz
    a * Znak a je buď neprítomný, alebo prítomný viackrát
    + Znak a je prítomný raz alebo viackrát
    a 3 3 výskyty charakteru a následne
    a 3 3 alebo viac výskytov znakov po sebe
    a 3,6 3 až 6 výskytov znakov a postupne
    ^ Začiatok reťazca
    $ Koniec reťazca
    \ b Hranica slov. Ak je znak posledným alebo prvým slovným slovom slova alebo Ak je znak medzi slovom alebo slovom
    \ B Nehovorová hranica

    Teraz čítaj: Pravidelné výrazy: 30 užitočných nástrojov a zdrojov