Linux-komentorivin ja Bash-komentosarjojen hallinta · 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 Linux-komentorivin ja Bash-komentosarjojen hallinta-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Linux-komentorivin ja Bash-komentosarjojen hallinta-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Linux-komentorivin ja Bash-komentosarjojen hallinta-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 Bash 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
22
Oppitunnit
88

Usein kysytyt kysymykset

Onko oppitunti ”Säännöllisten lausekkeiden (Regex) esittely” ilmainen?

Kyllä – oppitunnin ”Säännöllisten lausekkeiden (Regex) esittely” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Linux-komentorivin ja Bash-komentosarjojen hallinta-kurssin, päivitä CoddyKit PROhon. Linux-komentorivin ja Bash-komentosarjojen hallinta-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 Linux-komentorivin ja Bash-komentosarjojen hallinta-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Linux-komentorivin ja Bash-komentosarjojen hallinta-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Linux-komentorivin ja Bash-komentosarjojen hallinta-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ä Linux-komentorivin ja Bash-komentosarjojen hallinta-oppitunnilla?

Kyllä. Jokainen Linux-komentorivin ja Bash-komentosarjojen hallinta-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: Linux-komentorivin ja Bash-komentosarjojen hallinta