Säännöllisten lausekkeiden (Regex) esittely
Ymmärtäkää säännöllisten lausekkeiden syntaksi ja keskeiset käsitteet tehokasta tekstikuvioiden hakua varten.
Säännöllisten lausekkeiden (Regex) esittely on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä säännölliset lausekkeet ovat?
Säännölliset lausekkeet, joista käytetään usein lyhennettä Regex, ovat tehokkaita malleja tekstin etsimiseen ja käsittelyyn.
Voitte ajatella niitä tehostettuina hakutermeinä, joilla voidaan täsmäyttää tiettyjä merkkijonoja, merkkejä tai jopa tekstin kohtia.
Niitä käytetään laajasti ohjelmoinnissa, skriptauksessa ja Linuxin komentorivityökaluissa, kuten grep-, sed- ja awk-työkaluissa.
Literaalimerkkien täsmäytys
Yksinkertaisin säännöllinen lauseke täsmäyttää täsmälleen tietyt literaalimerkit. Jos haette merkkijonoa 'apple', se löytää täsmälleen merkkijonon 'apple'.
Käytetään komentoa grep (Global Regular Expression Print) tämän perusmuotoisen täsmäytyksen havainnollistamiseen.
echo "apple" > fruits.txt
echo "banana" >> fruits.txt
echo "pineapple" >> fruits.txt
grep "apple" fruits.txt
rm fruits.txtPiste: mikä tahansa yksittäinen merkki
Piste (.) on erikoismerkki, joka vastaa mitä tahansa yksittäistä merkkiä rivinvaihtoa lukuun ottamatta.
Se toimii yhden kohdan jokerimerkkinä. Esimerkiksi c.t vastaa merkkijonoja "cat", "cot" tai "cut".
echo "cat" > words.txt
echo "cot" >> words.txt
echo "cut" >> words.txt
echo "coat" >> words.txt
grep "c.t" words.txt
rm words.txtAsteriski: nolla tai useampi (*)
Asteriski (*) on kvanttori, joka vastaa sitä välittömästi edeltävän merkin tai ryhmän nollaa tai useampaa esiintymää.
Esimerkiksi colou*r vastaa merkkijonoja "color" (nolla u-kirjainta) ja "colour" (yksi u-kirjain).
echo "color" > spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
echo "cold" >> spellings.txt
grep "colou*r" spellings.txt
rm spellings.txtPlusmerkki: yksi tai useampi (+)
Plusmerkki (+) vastaa sitä edeltävän merkin tai ryhmän yhtä tai useampaa esiintymää.
Toisin kuin *-merkin tapauksessa, alkion on esiinnyttävä vähintään kerran. Siksi go+gle vastaa merkkijonoja "google" ja "gooogle", mutta ei merkkijonoa "ggle".
Huomautus: Jotta +-, ?- ja {}-merkit toimisivat suoraan grep-komennon kanssa, sinun on usein käytettävä laajennettujen säännöllisten lausekkeiden -E-valitsinta.
echo "google" > search.txt
echo "goooogle" >> search.txt
echo "ggle" >> search.txt
grep -E "go+gle" search.txt
rm search.txtKysymysmerkki: nolla tai yksi (?)
Kysymysmerkki (?) vastaa sitä edeltävän merkin tai ryhmän nollaa tai yhtä esiintymää.
Se tekee merkistä valinnaisen. Esimerkiksi colou?r vastaa merkkijonoja "color" (nolla u-kirjainta) ja "colour" (yksi u-kirjain).
echo "color" >> spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
grep -E "colou?r" spellings.txt
rm spellings.txtAnkkurit: alku (^) ja loppu ($)
Ankkurit eivät vastaa merkkejä, vaan tekstin tiettyjä sijainteja.
^vastaa rivin alkua.$vastaa rivin loppua.
Esimerkki: ^apple vastaa merkkijonoa "apple" vain, jos se on rivin alussa. apple$ vastaa merkkijonoa "apple" vain, jos se on rivin lopussa.
echo "apple pie" > menu.txt
echo "fresh apple" >> menu.txt
echo "apple" >> menu.txt
grep -E "^apple" menu.txt
grep -E "apple$" menu.txt
rm menu.txtMerkkiluokat: hakasulkeet ([])
Hakasulkeilla ([]) määritetään merkkiluokka, joka vastaa mitä tahansa joukkoon kuuluvaa yksittäistä merkkiä.
[aeiou]vastaa mitä tahansa yksittäistä vokaalia.[0-9]vastaa mitä tahansa yksittäistä numeroa.[a-zA-Z]vastaa mitä tahansa yksittäistä kirjainta.
Voit myös kieltää merkkiluokan käyttämällä muotoa [^...]. Esimerkiksi [^aeiou] vastaa mitä tahansa merkkiä, joka EI ole vokaali.
echo "cat" > animals.txt
echo "bat" >> animals.txt
echo "rat" >> animals.txt
echo "cot" >> animals.txt
grep -E "[cb]at" animals.txt
grep -E "[^cbr]at" animals.txt
rm animals.txtKvattorit: aaltosulkeet ({})
Aaltosulkeet ({}) ovat kvanttoreita, joilla määritetään edeltävän merkin tai ryhmän täsmällinen toistojen määrä.
a{3}vastaa merkkijonoa "aaa"a{2,}vastaa merkkijonoja "aa", "aaa", "aaaa" jne. (vähintään 2)a{2,4}vastaa merkkijonoja "aa", "aaa" ja "aaaa" (2–4)
Muista käyttää näiden kvanttoreiden kanssa komentoa grep -E.
echo "helllo" > greetings.txt
echo "hello" >> greetings.txt
echo "helo" >> greetings.txt
grep -E "hel{2,3}o" greetings.txt
rm greetings.txtSäännöllisten lausekkeiden pikatesti
Tarkastele näitä merkkijonoja:
bananabanaanabanaananabna
Mikä säännöllinen lauseke vastaisi vain merkkijonoja "banana" ja "banaana"?
Säännöllisten lausekkeiden perusteet: yhteenveto
Olet oppinut säännöllisten lausekkeiden perusteet!
- Säännölliset lausekkeet käyttävät kuvioita tekstin etsimiseen ja käsittelyyn.
- Kirjaimelliset merkit vastaavat itseään.
- Erikoismerkit, kuten
.,*,+,?,^,$,[]ja{}, tarjoavat tehokkaita vastausmahdollisuuksia.
Seuraavaksi käytät näitä kuvioita tekstin edistyneeseen hakuun grep-komennon ja sen eri valitsinten avulla.
Opi DevOps-bootcamp tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 142
- Oppitunnit
- 568
Usein kysytyt kysymykset
Onko oppitunti ”Säännöllisten lausekkeiden (Regex) esittely” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Säännöllisten lausekkeiden (Regex) esittely”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Säännöllisten lausekkeiden (Regex) esittely”?
Ymmärtäkää säännöllisten lausekkeiden syntaksi ja keskeiset käsitteet tehokasta tekstikuvioiden hakua varten. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Säännöllisten lausekkeiden (Regex) esittely”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä DevOps-bootcamp-oppitunnilla?
Kyllä. Jokainen DevOps-bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Säännöllisten lausekkeiden (Regex) esittely
- Grep ja säännölliset lausekkeet edistyneesti
- Säännöllisten lausekkeiden yhdistäminen sed- ja awk-komentoihin
- Kaappausryhmät, takaisinkytkennät ja korvaaminen