⊗pyPmREChS 40 of 129 menu

Merkkijoukot Pythonin säännöllisissä lausekkeissa

Merkkiryhmät \d ja \w eivät ole kovin joustavia. Jopa niin yksinkertainen tehtävä kuin löytää kaikki kirjaimet, mutta ei numerot - ei voida ratkaista niillä. Tällaisia tehtäviä varten tulisi käyttää hakasulkuja, jotka edustavat 'tai' -operaatiota.

Hakasulkeet korvaavat yhden merkin, minkä tahansa niistä, jotka on lueteltu sisällä. Esimerkiksi näin: x[abc]x - me sanomme, että reunoilla täytyy olla kirjain x, ja sisällä - yksi merkki: joko 'a', tai 'b', tai 'c'.

Hakasulkujen jälkeen voi kirjoittaa toistoominaisuuksia. Esimerkiksi näin: x[abc]+x - me sanomme, että x:ien sisällä voi olla mikä tahansa määrä merkkejä 'a', 'b' ja 'c' - missä tahansa yhdistelmissä.

Voi paitsi luetella merkkejä, myös luoda merkkiryhmiä kirjoittamalla kahden merkin väliin viiva. Esimerkiksi näin: [a-d] - saamme kaikki merkit 'a':sta 'd':hen.

Katsotaanpa esimerkein.

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa kirjain 'a':sta 'z':han:

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

Koodin suorituksen tulos:

'! ! ! x@x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa kirjain 'a':sta 'k':hon:

txt = 'xax xbx xmx x@x' res = re.sub('x[a-k]x', '!', txt) print(res)

Koodin suorituksen tulos:

'! ! xmx x@x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa kirjain 'A':sta 'Z':han:

txt = 'xax xBx xcx x@x' res = re.sub('x[A-Z]x', '!', txt) print(res)

Koodin suorituksen tulos:

'xax ! xcx x@x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa numero 0:sta 9:ään:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[0-9]x', '!', txt) print(res)

Koodin suorituksen tulos:

'xax ! ! ! x@x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa numero 3:sta 7:ään:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[3-7]x', '!', txt) print(res)

Koodin suorituksen tulos:

'xax x1x ! ! x@x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa kirjain 'a':sta 'z':han tai numero 1:stä 9:ään:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[a-z1-9]x', '!', txt) print(res)

Koodin suorituksen tulos:

'! ! ! ! x@x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa kirjain 'a':sta 'z':han tai kirjain 'A':sta 'Z':han:

txt = 'xax xBx xcx x5x x@x' res = re.sub('x[a-zA-Z]x', '!', txt) print(res)

Koodin suorituksen tulos:

'! ! ! x5x x@x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä mikä tahansa kirjain 'a':sta 'z':han tai numerot 1, 2:

txt = 'xax xbx x1x x2x x3x' res = re.sub('x[a-z12]x', '!', txt) print(res)

Koodin suorituksen tulos:

'! ! ! ! x3x'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: x:ien välissä kirjaimet 'a':sta 'z':han määrältään 1 tai enemmän:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]+x', '!', txt) print(res)

Koodin suorituksen tulos:

'xx ! ! ! x123x xa3x'

Esimerkki

Tehdään niin, että kirjainten määrä voi olla myös nolla:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]*x', '!', txt) print(res)

Tuloksena saamme:

'! ! ! ! x123x xa3x'

Esimerkki

Hakasulkujen sisällä voi myös ilmoittaa erikoismerkit. Etsitään kirjainten ja numeroiden sarjaa, joka toistuu nolla tai useamman kerran:

txt = 'xx x@x xadx xas12x xa3x' res = re.sub('x[a-z\d]*x', '!', txt) print(res)

Koodin suorituksen tulos:

'! x@x ! ! !'

Esimerkki

Jos meidän täytyy ilmoittaa toiset hakasulut, niin me myös pakotamme ne:

txt = 'xx xrx xas[]x x3x' res = re.sub('x[a-z\[\]]*x', '!', txt) print(res)

Koodin suorituksen tulos:

'! ! ! x3x'

Käytännön tehtävät

Annettu merkkijono:

txt = 'aba aea aca aza axa'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - kirjain 'b', 'e' tai 'x'.

Annettu merkkijono:

txt = 'a1a a3a a7a a9a aba'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - numero 3:sta 6:een.

Annettu merkkijono:

txt = 'aba aea afa aha aga'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - kirjain 'a':sta 'g':aan.

Annettu merkkijono:

txt = 'aba aea afa aha aga'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - kirjain 'a':sta 'f':ään ja 'j':sta 'z':han.

Annettu merkkijono:

txt = 'aAa aea aEa aJa a3a'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - kirjain 'a':sta 'f':ään ja 'A':sta 'D':han.

Annettu merkkijono:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - pienet latinalaiset kirjaimet, koskematta muihin.

Annettu merkkijono:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - pienet ja suuret latinalaiset kirjaimet, koskematta muihin.

Annettu merkkijono:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Kirjoita säännöllinen lauseke, joka löytää seuraavan mallin mukaan: reunoilla on kirjaimet 'a', ja niiden välissä - pienet latinalaiset kirjaimet ja numerot, koskematta muihin.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää