Mājas lapa » Kodēšana » Iesācēja ceļvedis regulārajai izteiksmei (Regex)

    Iesācēja ceļvedis regulārajai izteiksmei (Regex)

    Regulāra izteiksme ir rakstzīmju kopa, kas veido rakstu, ko var meklēt virknē. Regex var izmantot apstiprināšana lai apstiprinātu kredītkaršu numurus Meklēt t.i., izmantojot sarežģītu teksta atbilstību, un aizstājot saskaņoto tekstu ar citu virkni. Tam ir arī liels vairāku valodu atbalsts - iemācīties to vienu reizi, un to var izmantot daudzās programmēšanas valodās.

    Esmu redzējis dažus cilvēkus, kas pirmo reizi aplūko regex, un to pilnībā ignorē. Es tos ne vainoju; regex sintakse ir sarežģīta un padarīs daudzus ienaidniekus tāpat kā šīs komandrindas valodas, tikai sliktāk. Bet tad katra jauna lieta ir biedējoša un šķiet neiespējama mācīties sākumā. Tātad, aizņemot Horatius vārdus, es to saku; Sāciet, būsiet drosmīgs un apzinieties, ka esi gudrs.

    Par Regex

    Regex bija saknes neirozinātnē un matemātikā un tika īstenotas tikai 1968. gadā, kad Ken Thompson teksta meklēšanā rediģēja QED teksta redaktoru. Tagad tā ir daļa no daudzām programmēšanas valodām, piemēram, Perl, Java, Python, Ruby un JavaScript.

    Apskatīsim dažus piemērus, kā darbojas regex.

    Es izmantošu JavaScript manos piemēros. Tagad, lai nokļūtu iesācēju līmenī, jums ir jāapgūst viss rakstzīmes, klases, kvantifikatori, modifikatori un metodes izmanto regex. Šeit ir saite uz Mozilla Developer Network regulāro izteiksmju lapu, kurā var apskatīt tabulu ar visiem tiem. Varat arī atsaukties uz šo ziņu beigās izmantoto krāpjlapu ar visbiežāk lietotajām rakstzīmēm.

    Apskatīsim vienkāršu piemēru ar paskaidrojumu. Tas ir regekss.

    Tas ir tas, ko iepriekšminētais regeks meklēs rindā, rakstzīme "B", kam seko vismaz viens no jebkuras rakstzīmes starp (un ieskaitot) "a" līdz "z", "A" līdz "Z" un skaitļi 0 līdz 9.

    Lūk, izlases paraugs rindā, kas iezīmēta:

    Grozs, spuldze, B12 vitamīns, BaSO4, N BC uzņēmums

    Iepriekš minētais regex apturēs meklēšanu Grozs un atgriezt pozitīvu atbildi. Tas ir tāpēc, ka globālais modifikatorsg“ir jānorāda ja vēlaties, lai regex izskatītu visas iespējamās spēles.

    Tagad aplūkosim, kā lietot šo izteiksmi JavaScript. The pārbaude metode iet: ja tiek atrasts atbilstības atgriešanās taisnība, cits nepatiesa.

     var input = "jūsu testa virkne", regex = / B [a-zA-Z] + /; ja (! regex.test (ievade)) brīdinājums (“Nav atrasts atbilstība”); cits brīdinājums (“Atbilstība ir atrasta”);

    Izmēģināsim citu metodi: atbilst atgriež masīvā atrastās spēles.

     var input = "jūsu pārbaudes virkne", regex = / B [a-zA-Z d] + / g, / * Esmu pievienojis globālajam modifikatoram "g", lai iegūtu visas atbilstības * / ary = input.match (regex); ja (ary === null) brīdinājums (“Nav atrasta”); cits brīdinājums ('atbilst:' + ary.toString ());

    Kā par stīgu aizvietot? Izmēģināsim to ar regex tagad.

     var input = "jūsu pārbaudes virkne", regex = / B [a-zA-Z] + / g; brīdinājums (input.replace (regex, "#"));

    Zemāk ir kodēts, lai jūs varētu iekniebt. Lai skatītu JS kodu, noklikšķiniet uz cilnes JavaScript.

    Vingrinājumi

    Vingrinājumiem varat google “regex vingrinājumi” un mēģiniet tos atrisināt. Lūk, ko sagaidīt, mēģinot šos vingrinājumus, atkarībā no grūtības pakāpes.

    Pamata

    Man ir iespēja apstiprināt paroli ir pietiekami starteri. Tātad, apstipriniet paroli no 8 līdz 16 rakstzīmju garuma, burtciparu ar jūsu izvēlētajām īpašajām rakstzīmēm.

    Starpnieks

    Tas ir, ja jums vajadzētu praktizēt ar reālākiem datiem par pasauli un uzzināt vēl dažus regex punktus lookahead, apgalvojumi par skatījumu un atbilstošās grupas;

    • Apstipriniet PIN kodus, heksadecimālus, datumus, e-pasta ID, peldošo punktu.
    • Aizstājiet nulles nulli, vienādas vietas, atbilstošu vārdu kopu
    • Izvilkt dažādas URL daļas

    Uzlabots

    Jūs varat optimizēt iepriekš minētos vingrinājumu risinājumus - optimālajam e-pasta ziņojumam ir tūkstošiem rakstzīmju nogādājiet to tik tālu, cik jūs jūtaties ērti un tas ir pietiekami. Varat arī izmēģināt:

    • Analizējot HTML vai XML (ja tas ir reālajā pasaulē, tas nav tik daudz, kā to izdarīt, jo, izmantojot parastu izteiksmi, lai analizētu neregulāru valodu, piemēram, HTML, nekad nebūs drošs. Plus XML parsēšana ir sarežģīts uzdevums, vairāk piemērots uzlabotas līmeņa lietotājiem)
    • Etiķešu nomaiņa
    • Komentāru noņemšana (izņemot IE nosacītos komentārus)

    Rīki

    Rīki vizualizēt regex ir viena no vissīkākajām lietām. Ja jūs kādreiz sastapsieties ar ilgu kompleksu regex, vienkārši nokopējiet tos vienā no šiem rīkiem un jūs varēsiet skaidri redzēt plūsmu. Bez tam, ir daudzi rīki, kurus varat izmantot, lai sajauktos ar regex kodu. Viņi arī demonstrē piemērus un cheatsheets kopā ar koplietošanas funkcijām.

    • Debuggex - tas uzrāda regex diagrammu, kā norādīts jūsu ievadā, un jūs varat ātri koplietot StackOverflow tieši no turienes.
    • RegExr - Jūs varat pārbaudīt savu regex ar šo. Tas arī saņēma atsauci, cheatsheet un piemērus, lai palīdzētu jums.
    • Refiddle - šobrīd, izņemot JavaScript, varat arī mīklāties ar Ruby un .NET versijām..

    Regex Cheatsheet

    Token Definīcija
    [abc] Jebkura atsevišķa rakstzīme a, b vai c
    [^ abc] Jebkura cita rakstzīme, izņemot a, b vai c
    [a-z] Raksturs starp (ieskaitot) no a līdz z
    [^ a-z] Raksturs, izņemot no a līdz z
    [A-Z] Raksturs starp (ieskaitot) no A līdz Z
    . Jebkurš atsevišķs raksturs
    s Jebkura atstarpes raksturs
    S Jebkurš ne-atstarpes raksturs
    d Jebkurš cipars no 0 līdz 9
    D Jebkurš ne cipars
    w Jebkurš vārdu raksturs (burts, numurs un pasvītrojums)
    W Jebkurš raksturs bez vārdiem
    (…) Uzņemiet visu slēgto
    (a | b) Saskaņojiet vai nu a vai b
    a? Raksturs a ir vai nu klāt, vai vienreiz
    a * Raksturs a ir vai nu klāt, vai vairākas reizes
    a+ Rakstzīme a ir viena vai vairākas reizes
    a 3 3 rakstura a secības
    a 3, 3 vai vairāk rakstura a secības
    a 3,6 3 līdz 6 rakstzīmes a secībā
    ^ Svītru sākums
    $ Stīgas beigas
    b Vārdu robeža. Ja rakstzīme ir vārda pēdējais vai pirmais vārds vai ja rakstzīme ir starp vārdu vai vārdu
    B Netieša robeža

    Tagad lasiet: Regulāras izteiksmes: 30 Noderīgi rīki un resursi