Python Academy · Oppitunti

Ryhmät ja nimetyt kaappaukset

Poimikaa tietoja kaappausryhmien ja nimettyjen ryhmien syntaksin avulla.

Oppitunti 3/414 vaihetta

Ryhmät ja nimetyt kaappaukset on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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 Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

Johdanto

Kaappausryhmillä poimitaan osuman tiettyjä osia. Nimetyt ryhmät tekevät poimitusta tiedosta itsensä dokumentoivaa.

Peruskaappausryhmä

Sulkeet () luovat kaappausryhmän. m.group(1) palauttaa ensimmäisen ryhmän osuman.
import re
m = re.search(r'(\d{4})-(\d{2})-(\d{2})', '2024-01-15')
if m: print(m.group(1), m.group(2), m.group(3))

m.groups()

m.groups() palauttaa kaikki kaappausryhmät monikkona.
import re
m = re.search(r'(\w+)@(\w+)\.(\w+)', 'user@example.com')
if m: print(m.groups())

Nimetyt ryhmät

(?Ppattern) luo nimetyn ryhmän. Ryhmään pääsee käsiksi kutsuilla m.group('name') tai m.groupdict().
import re
m = re.search(
    r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',
    '2024-01-15'
)
if m: print(m.groupdict())

Kaappaamattomat ryhmät

(?:pattern) ryhmittelee merkit kaappaamatta niitä. Tämä on hyödyllistä, kun tarvitsette ryhmittelyä toistomääreille mutta ette itse osumaa.
import re
print(re.findall(r'(?:cat|dog)s?', 'cats dogs cat dog'))

Takaisinkutsut

\1 viittaa mallin sisällä siihen, mihin ryhmä 1 täsmäsi. Se on hyödyllinen toistuvien sanojen etsimisessä.
import re
# Match repeated words
m = re.search(r'\b(\w+)\s+\1\b', 'the the quick brown', re.IGNORECASE)
if m: print('repeated:', m.group())

findall ryhmien kanssa

Kun malli sisältää ryhmiä, findall palauttaa kokonaisten osumien sijaan luettelon ryhmien muodostamista monikoista.
import re
result = re.findall(r'(\w+)=(\w+)', 'x=1 y=2 z=3')
print(result)

Ryhmien käyttäminen re.sub():ssa

re.sub():ssa \1 tai \g lisää kaapatut ryhmät korvaavaan merkkijonoon.
import re
result = re.sub(r'(\w+)\s(\w+)', r'\2 \1', 'John Smith')
print(result)

Lookahead (?= )

(?=expr) on positiivinen lookahead — se täsmää kohtaan, jota expr seuraa, kuluttamatta merkkejä.
import re
# Prices followed by USD
print(re.findall(r'\d+(?= USD)', '100 USD 200 EUR 300 USD'))

Lookbehind (?<= )

(?<=expr) on positiivinen lookbehind — se täsmää kohtaan, jota expr edeltää, kuluttamatta merkkejä.
import re
print(re.findall(r'(?<=\$)\d+', 'paid $100 and $200'))

Nimetty takaisinkutsu

(?P=name) viittaa mallissa nimetyn ryhmän arvoon. Se on hyödyllinen sulkevien tunnisteiden täsmäyttämisessä.
import re
m = re.search(r'<(?P<tag>\w+)>.*?</(?P=tag)>', '<b>hello</b>')
if m: print(m.group())

Pikatarkistus

Miten match-olion m nimettyyn year-kaappausryhmään pääsee käsiksi?

Kertaus

Ryhmät () kaappaavat osia. m.group(1), m.groups(), m.groupdict(). Nimetty ryhmä: (?P). Kaappaamaton ryhmä: (?:). Takaisinkutsut: \1 tai \g korvauksissa.

Jatkakaa

Hienosti tehty! Seuraava oppitunti odottaa.
Aloita maksutta

Opi Python 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
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Ryhmät ja nimetyt kaappaukset” ilmainen?

Kyllä – oppitunnin ”Ryhmät ja nimetyt kaappaukset” 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 Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Ryhmät ja nimetyt kaappaukset”?

Poimikaa tietoja kaappausryhmien ja nimettyjen ryhmien syntaksin avulla. Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Ryhmät ja nimetyt kaappaukset”-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ä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-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 perusteet
  2. re.match-, re.search- ja re.findall-funktioiden käyttö
  3. Ryhmät ja nimetyt kaappaukset
  4. re.sub, liput ja käännetyt hahmot
← Takaisin: Python Academy