Python Academy · Oppitunti

re.sub, liput ja käännetyt hahmot

Korvatkaa tekstiä, käyttäkää IGNORECASE-tyyppisiä lippuja ja kääntäkää hahmoja uudelleenkäyttöä varten.

Oppitunti 4/414 vaihetta

re.sub, liput ja käännetyt hahmot on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/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

re.sub korvaa osumia. Liput muuttavat täsmäyksen toimintaa. Käännetyt mallit ovat tehokkaita toistuvassa käytössä.

re.sub:n perusteet

re.sub(pattern, repl, string) korvaa kaikki osumat merkkijonolla repl. Neljäs argumentti count= rajoittaa korvausten määrää.
import re
result = re.sub(r'\d+', 'X', 'abc 123 def 456')
print(result)

re.sub ryhmien kanssa

Käyttäkää korvauksessa merkintöjä \1, \2 tai \g<1> kaapattujen ryhmien lisäämiseen. Nimettyjen ryhmien kohdalla käyttäkää merkintää \g.
import re
# Swap first and last name
result = re.sub(r'(\w+),\s*(\w+)', r'\2 \1', 'Smith, John')
print(result)

re.sub funktion kanssa

Korvaava arvo voi olla kutsuttava: f(match) → korvaava merkkijono. Tämä mahdollistaa monimutkaiset muunnokset.
import re
def double_num(m): return str(int(m.group())*2)
result = re.sub(r'\d+', double_num, '1 cats and 2 dogs')
print(result)

re.IGNORECASE (re.I)

Tekee mallista kirjainkoosta riippumattoman. r'hello' ja re.I täsmäävät merkkijonoihin 'HELLO', 'Hello' ja niin edelleen.
import re
print(re.findall(r'hello', 'Hello HELLO hello', re.I))

re.MULTILINE (re.M)

Saa ^- ja $-ankkurit täsmäämään kunkin RIVIN alkuun ja loppuun koko merkkijonon sijaan.
import re
text = 'first\nsecond\nthird'
print(re.findall(r'^\w+', text, re.M))

re.DOTALL (re.S)

Saa pisteen . täsmäämään myös rivinvaihtoihin. Ilman tätä asetusta . pysähtyy rivirajoihin.
import re
text = 'line1\nline2'
print(re.search(r'line1.line2', text, re.S).group())

re.VERBOSE (re.X)

Sallii kommentit ja tyhjemerkit mallissa luettavuuden parantamiseksi. Välilyönnit ohitetaan; käyttäkää merkintää \ + välilyönti kirjaimellista välilyöntiä varten.
import re
pattern = re.compile(r'''
    (?P<year>\d{4})   # year
    -
    (?P<month>\d{2}) # month
    -
    (?P<day>\d{2})   # day
''', re.X)
print(pattern.search('2024-01-15').groupdict())

Lippujen yhdistäminen

Yhdistäkää liput operaattorilla |: re.I | re.M. Voitte myös käyttää mallin alussa upotettuja lippuja (?im).
import re
print(re.findall(r'^\w+', 'Hello\nWorld', re.I | re.M))

re.compile suorituskykyä varten

Kääntäkää malli kerran kutsulla re.compile(). Kutsukaa metodeja käännetystä oliosta: pat.search(), pat.findall().
import re
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
emails = ['user@example.com', 'invalid', 'test@test.org']
print([e for e in emails if email_re.fullmatch(e)])

re.escape()

re.escape(string) eskattoi kaikki merkkijonon erityiset regex-merkit, joten merkkijonoa voidaan käyttää kirjaimellisena mallina.
import re
user_input = 'price.is $10+'
pattern = re.compile(re.escape(user_input))
text = 'The price.is $10+ today'
print(bool(pattern.search(text)))

Pikatarkistus

Mikä lippu saa pisteen . täsmäämään Pythonin regexissä myös rivinvaihtoihin?

Kertaus

re.sub: korvaaminen merkkijonolla, ryhmillä tai funktiolla. Liput: re.I (kirjainkoko), re.M (moniriviset ^/$), re.S (piste täsmää \n:ään), re.X (monisanaisuus). Kääntäkää malli uudelleenkäyttöä varten.

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 ”re.sub, liput ja käännetyt hahmot” ilmainen?

Kyllä – oppitunnin ”re.sub, liput ja käännetyt hahmot” 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 ”re.sub, liput ja käännetyt hahmot”?

Korvatkaa tekstiä, käyttäkää IGNORECASE-tyyppisiä lippuja ja kääntäkää hahmoja uudelleenkäyttöä varten. 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 4/4.

Kuinka kauan ”re.sub, liput ja käännetyt hahmot”-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