DevOps-bootcamp · Oppitunti

Säännöllisten lausekkeiden (Regex) esittely

Ymmärtäkää säännöllisten lausekkeiden syntaksi ja keskeiset käsitteet tehokasta tekstikuvioiden hakua varten.

Oppitunti 1/411 vaihetta

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.txt

Piste: 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.txt

Asteriski: 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.txt

Plusmerkki: 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.txt

Kysymysmerkki: 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.txt

Ankkurit: 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.txt

Merkkiluokat: 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.txt

Kvattorit: 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.txt

Säännöllisten lausekkeiden pikatesti

Tarkastele näitä merkkijonoja:

  • banana
  • banaana
  • banaanana
  • bna

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.

Aloita maksutta

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

  1. Säännöllisten lausekkeiden (Regex) esittely
  2. Grep ja säännölliset lausekkeet edistyneesti
  3. Säännöllisten lausekkeiden yhdistäminen sed- ja awk-komentoihin
  4. Kaappausryhmät, takaisinkytkennät ja korvaaminen
← Takaisin: DevOps-bootcamp