Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ryhmittely, kvanttorit ja ankkurit | Keskitasoiset säännölliset lausekkeet
Pythonin Säännölliset Lausekkeet

Ryhmittely, kvanttorit ja ankkurit

Pyyhkäise näyttääksesi valikon

Ymmärrys siitä, miten osia kaavasta ryhmitellään, toistojen määrää määritellään ja missä kohtaa merkkijonossa osuma tapahtuu, on olennaista tehokkaiden säännöllisten lausekkeiden kirjoittamisessa. Pythonissa käytetään sulkuja () ryhmien luomiseen, jolloin useita merkkejä voidaan käsitellä yhtenä yksikkönä. Kvanttorit kuten *, +, ? ja {n,m} määrittävät, kuinka monta kertaa merkki tai ryhmä saa esiintyä. Ankkurit kuten ^ ja $ ovat erikoismerkkejä, jotka vastaavat merkkijonon alkua tai loppua.

Ryhmittely suluilla

Suluilla ryhmittely mahdollistaa kvanttoreiden käytön kokonaisiin alikaavoihin yksittäisten merkkien sijaan. Esimerkiksi (ab)+ vastaa yhtä tai useampaa ab-jonon toistoa.

Kvanttorit

  • Tähti (*) tarkoittaa "nolla tai useampia kertoja";
  • Plusmerkki (+) tarkoittaa "yksi tai useampia kertoja";
  • Kysymysmerkki (?) tarkoittaa "nolla tai yksi kerta";
  • Aaltosulkeet ({n,m}) määrittävät vähimmäis- (n) ja enimmäismäärän (m) toistoja.

Ankkurit

Ankkurit eivät ole merkkejä, joita vastataan, vaan ne ovat sijaintimerkkejä merkkijonossa. Hattumerkki (^) osoittaa alun ja dollarimerkki ($) osoittaa merkkijonon lopun.

1234567
import re text = "hello hello world world world" pattern = r"(world\s+)+" matches = re.findall(pattern, text) print(matches)

Vaiheittainen analyysi: Ryhmittely ja kvanttorit

Tässä esimerkissä säännöllisen lausekkeen kaava (world\s+)+ etsii toistuvia world-sanoja, joita seuraa välilyöntejä. Tarkastellaan, miten tämä kaava toimii:

  • Sulut () muodostavat ryhmän world\s+ ympärille, jolloin sana world ja sitä seuraava välilyönti käsitellään yhtenä yksikkönä;
  • Plusmerkki + kvanttori ryhmän jälkeen tarkoittaa, että ryhmän on esiintyttävä yksi tai useampia kertoja peräkkäin;
  • Tämän seurauksena kaava vastaa jokaista jaksoa, jossa world toistuu välilyönnein eroteltuna, ja ottaa talteen pisimmän tällaisen jakson.

Ryhmittely on erityisen hyödyllistä, kun halutaan käyttää kvanttoreita merkkijonon osiin tai tallentaa osia osumasta myöhempää käyttöä varten. Kvanttorit voidaan liittää yksittäisiin merkkeihin, merkkiluokkiin tai kokonaisiin ryhmiin. Ankkureiden käyttö näiden kaavojen kanssa mahdollistaa osumien sijainnin tarkemman hallinnan, esimerkiksi toistuvan sanan etsimisen vain merkkijonon alusta tai lopusta.

question mark

Mitä regex-kaava (ab)+ vastaa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Ryhmittely, kvanttorit ja ankkurit

Ymmärrys siitä, miten osia kaavasta ryhmitellään, toistojen määrää määritellään ja missä kohtaa merkkijonossa osuma tapahtuu, on olennaista tehokkaiden säännöllisten lausekkeiden kirjoittamisessa. Pythonissa käytetään sulkuja () ryhmien luomiseen, jolloin useita merkkejä voidaan käsitellä yhtenä yksikkönä. Kvanttorit kuten *, +, ? ja {n,m} määrittävät, kuinka monta kertaa merkki tai ryhmä saa esiintyä. Ankkurit kuten ^ ja $ ovat erikoismerkkejä, jotka vastaavat merkkijonon alkua tai loppua.

Ryhmittely suluilla

Suluilla ryhmittely mahdollistaa kvanttoreiden käytön kokonaisiin alikaavoihin yksittäisten merkkien sijaan. Esimerkiksi (ab)+ vastaa yhtä tai useampaa ab-jonon toistoa.

Kvanttorit

  • Tähti (*) tarkoittaa "nolla tai useampia kertoja";
  • Plusmerkki (+) tarkoittaa "yksi tai useampia kertoja";
  • Kysymysmerkki (?) tarkoittaa "nolla tai yksi kerta";
  • Aaltosulkeet ({n,m}) määrittävät vähimmäis- (n) ja enimmäismäärän (m) toistoja.

Ankkurit

Ankkurit eivät ole merkkejä, joita vastataan, vaan ne ovat sijaintimerkkejä merkkijonossa. Hattumerkki (^) osoittaa alun ja dollarimerkki ($) osoittaa merkkijonon lopun.

1234567
import re text = "hello hello world world world" pattern = r"(world\s+)+" matches = re.findall(pattern, text) print(matches)

Vaiheittainen analyysi: Ryhmittely ja kvanttorit

Tässä esimerkissä säännöllisen lausekkeen kaava (world\s+)+ etsii toistuvia world-sanoja, joita seuraa välilyöntejä. Tarkastellaan, miten tämä kaava toimii:

  • Sulut () muodostavat ryhmän world\s+ ympärille, jolloin sana world ja sitä seuraava välilyönti käsitellään yhtenä yksikkönä;
  • Plusmerkki + kvanttori ryhmän jälkeen tarkoittaa, että ryhmän on esiintyttävä yksi tai useampia kertoja peräkkäin;
  • Tämän seurauksena kaava vastaa jokaista jaksoa, jossa world toistuu välilyönnein eroteltuna, ja ottaa talteen pisimmän tällaisen jakson.

Ryhmittely on erityisen hyödyllistä, kun halutaan käyttää kvanttoreita merkkijonon osiin tai tallentaa osia osumasta myöhempää käyttöä varten. Kvanttorit voidaan liittää yksittäisiin merkkeihin, merkkiluokkiin tai kokonaisiin ryhmiin. Ankkureiden käyttö näiden kaavojen kanssa mahdollistaa osumien sijainnin tarkemman hallinnan, esimerkiksi toistuvan sanan etsimisen vain merkkijonon alusta tai lopusta.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1
some-alt