Pagrindinis » Kodavimas » Pradedančiųjų gidas reguliariai raiška („Regex“)

    Pradedančiųjų gidas reguliariai raiška („Regex“)

    Įprastinė išraiška yra simbolių rinkinys, sudarantis modelį, kurį galima ieškoti eilutėje. Regex gali būti naudojamas patvirtinimas patvirtinti kredito kortelių numerius Paieška t. y. per sudėtingus teksto atitikmenis ir pakeitus suderintą tekstą su kita eilute. Ji taip pat turi didelę daugiakalbę paramą - sužinokite vieną kartą ir galite ją naudoti daugelyje programavimo kalbų.

    Aš mačiau keletą žmonių, kurie pirmą kartą žiūri į regex ir visiškai ignoruoja. Aš ne kaltinu juos; „Regex“ sintaksė yra sudėtinga ir daugeliui treniruočių, kaip ir tų komandų eilutės kalbų, tik blogiau. Bet tada kiekvienas naujas dalykas baisu ir iš pradžių atrodo neįmanomas. Taigi, skolindamas Horatiaus žodžius, tai pasakysiu; Pradėkite, būkite drąsūs ir būkite išmintingi.

    Apie „Regex“

    „Regex“ šaknis buvo neurologijos ir matematikos srityse, o programoje 1968 m. Jį įgyvendino Ken Thompson teksto paieškos tekstų redaktoriuje QED. Dabar tai yra daugelio programavimo kalbų, tokių kaip „Perl“, „Java“, „Python“, „Ruby“ ir „JavaScript“ dalis.

    Pažvelkime keletą pavyzdžių, kaip veikia „regex“.

    Aš naudosiu „JavaScript“ mano pavyzdžiuose. Dabar, norėdami pereiti pradedantiesiems, reikia išmokti viską simboliai, klasės, kiekybiniai, modifikatoriai ir metodai naudojami regex. Čia yra nuoroda į „Mozilla Developer Network“ puslapį, kuriame galite peržiūrėti lentelę su visais. Taip pat galite kreiptis į cheatsheet šio įrašo pabaigoje su dažniausiai naudojamais simboliais.

    Pažvelkime paprastą pavyzdį su paaiškinimu. Tai regex.

    Tai, ką pirmiau minėta regex ieškos eilutėje, simbolis „B“, po kurio yra bent vienas iš bet kokių simbolių tarp (ir įskaitant) „a“ iki „z“, „A“ iki „Z“ ir numeriai nuo 0 iki 9.

    Toliau pateiktoje eilutėje pažymėtų atitikmenų pavyzdys:

    Krepšelis, lemputė, B12 vitaminas, BaSO4, N BC įmonė

    Pirmiau minėta regex sustabdys paiešką Krepšelis ir grąžinti teigiamą atsakymą. Tai todėl pasaulinis modifikatoriusg„turi būti nurodyta jei norite, kad regex peržiūrėtų visas galimas rungtynes.

    Dabar pažiūrėkime, kaip naudoti šią frazę „JavaScript“. The bandymas metodas eina: jei surastas atitikimas tiesa, Kitas klaidinga.

     var input = "jūsų bandymo eilutė", regex = / B [a-zA-Z] + /; jei (! regex.test (įvesties)) įspėjimas („Nerasta atitikties“); kitas įspėjimas („Rastas atitikimas“);

    Pabandykime kitą būdą: rungtynės grąžina masyvo rastas rungtynes.

     var input = "jūsų testo eilutė", regex = / B [a-zA-Z d] + / g, / * į regex pridėjau pasaulinį modifikatorių 'g', kad gautumėte visus atitikmenis * / ary = input.match (regex); jei (ary === null) įspėjimas („Nerasta atitikties“); dar įspėjimas („atitikmenys:“ + ary.toString ());

    Kaip apie eilutę pakeisti? Pabandykime tai su regex dabar.

     var input = "jūsų bandymo eilutė", regex = / B [a-zA-Z] + / g; įspėjimas (input.replace (regex, "#"));

    Žemiau pateikiamas kodavimo įrankis, kuris jums padės. Jei norite peržiūrėti JS kodą, spustelėkite skirtuką „JavaScript“.

    Pratimai

    Už pratybas galite „Google“ “regex pratimai” ir pabandykite juos išspręsti. Štai ką galima tikėtis bandant šiuos pratimus pagal sudėtingumo lygius.

    Pagrindinis

    Man tai pavyko patvirtinti slaptažodį pakanka starteriams. Taigi, patvirtinkite 8–16 simbolių ilgio, raidžių ir skaitmenų su slaptažodžiu, kurį pasirinkote, simbolius.

    Tarpinis

    Štai kur jūs turėtumėte praktikuoti su realesniu pasaulio duomenimis ir išmokti dar kelis regex taškus žvilgsnis, tvirtinimai ir atitikimo grupės;

    • Patvirtinkite PIN kodus, šešioliktainius, datas, el.
    • Pakeiskite nulinę nulinę dalį, skirtingas vietas, atitinkančių žodžių rinkinį
    • Ištraukite skirtingas URL dalis

    Išplėstinė

    Jūs galite optimizuoti pirmiau minėtus pratimus - optimaliausias el. Pašto regex yra juose tūkstančiai simbolių paimkite jį tiek, kiek jaučiatės patogiai ir kad to pakanka. Taip pat galite pabandyti:

    • Analizuojant HTML ar XML (tai, kad realiame pasaulyje tai yra nenaudinga, nes reguliarios išraiškos naudojimas, norint išanalizuoti nereguliarią kalbą, pvz., HTML, niekada nepadės jį patikimai.
    • Žymių pakeitimas
    • Komentarų šalinimas (išskyrus IE sąlygines pastabas)

    Įrankiai

    Įrankiai vizualizuoti regex yra vienas iš geriausių dalykų ten. Jei kada nors susiduriate su ilgą kompleksą, tiesiog nukopijuokite juos į vieną iš šių įrankių ir galėsite aiškiai matyti srautą. Be to, yra daug įrankių, kuriuos galite naudoti, kad susietumėte su regex kodu. Jie taip pat demonstruoja pavyzdžius ir cheatsheets kartu su bendrinimo funkcijomis.

    • „Debuggex“ - ji užrašo regex diagramą pagal jūsų įvestį ir iš karto galėsite greitai dalytis „StackOverflow“.
    • RegExr - Jūs galite išbandyti savo regex su šiuo. Ji taip pat gavo nuorodą, cheatsheet ir pavyzdžių, kurie padėtų jums išeiti.
    • Refiddle - Šiuo metu, išskyrus „JavaScript“, galite taip pat pasigirti Ruby ir .NET versijomis, kuriose yra regex.

    „Regex Cheatsheet“

    Ženklas Apibrėžimas
    [abc] Bet koks a, b arba c simbolis
    [^ abc] Bet koks kitas simbolis, išskyrus a, b arba c
    [a-z] Simbolis tarp (įskaitant) nuo a iki z
    [^ a-z] Ženklas, išskyrus a – z
    [A-Z] Simbolis tarp (įskaitant) nuo A iki Z
    . Bet koks simbolis
    s Bet koks tarpas
    S Bet koks ne erdvinis simbolis
    d Bet koks skaitmuo nuo 0 iki 9
    D Bet koks ne skaitmeninis
    w Bet koks žodžio simbolis (raidė, numeris ir pabraukimas)
    W Bet koks ne žodinis simbolis
    (…) Užfiksuokite viską, kas yra
    (a | b) Suderinkite arba a arba b
    a? Simbolis a yra arba nedalyvauja, arba vienu metu
    a * Simbolis a yra arba nedalyvauja
    a+ Simbolis a yra vienas ar daugiau kartų
    a 3 3 požymiai a
    a 3, 3 ar daugiau požymių a
    a 3,6 3–6 eilės simbolių a
    ^ Stygos pradžia
    $ Stygos pabaiga
    b Žodžio riba. Jei simbolis yra paskutinio ar pirmojo žodžio simbolis arba jei simbolis yra tarp žodžio ar nežodinio simbolio
    B Nežodinė riba

    Dabar skaitykite: Reguliarios išraiškos: 30 Naudingi įrankiai ir ištekliai