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