⊗pyPmREChS 40 of 129 menu

Nabori znakov v regularnih izrazih Python

Skupine znakov \d in \w niso zelo prilagodljive. Celo tako preprosta naloga, kot je poisci vse črke, ne pa številk - ne more biti rešena z njimi. Za takšne naloge je priporočljivo uporabiti oglate oklepaje, ki predstavljajo operacijo 'ali'.

Oglati oklepaji nadomeščajo en znak, katerikoli od naštetih znotraj. Na primer, takole: x[abc]x - povemo, da morajo na robovih stati črke x, znotraj pa - en znak: ali 'a', ali 'b', ali 'c'.

Za oglatimi oklepaji lahko pišemo operatorje ponavljanja. Na primer, takole: x[abc]+x - povemo, da znotraj x-ov je lahko poljubno število znakov 'a', 'b' in 'c' - v poljubnih kombinacijah.

Lahko ne samo naštevamo znake, ampak tudi ustvarjamo skupine znakov, tako da zapišemo med dvema znakoma vezaj. Na primer, takole: [a-d] - dobimo vse znake od 'a' do 'd'.

Poglejmo si primere.

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli črka od 'a' do 'z':

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

Rezultat izvajanja kode:

'! ! ! x@x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli črka od 'a' do 'k':

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

Rezultat izvajanja kode:

'! ! xmx x@x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli črka od 'A' do 'Z':

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

Rezultat izvajanja kode:

'xax ! xcx x@x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli številka od 0 do 9:

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

Rezultat izvajanja kode:

'xax ! ! ! x@x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli številka od 3 do 7:

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

Rezultat izvajanja kode:

'xax x1x ! ! x@x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli črka od 'a' do 'z' ali številka od 1 do 9:

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

Rezultat izvajanja kode:

'! ! ! ! x@x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli črka od 'a' do 'z' ali črka od 'A' do 'Z':

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

Rezultat izvajanja kode:

'! ! ! x5x x@x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji katera koli črka od 'a' do 'z' ali številki 1, 2:

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

Rezultat izvajanja kode:

'! ! ! ! x3x'

Primer

V tem primeru je vzorec iskanja videti takole: med x-ji črke od 'a' do 'z' v količini od 1 in več:

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

Rezultat izvajanja kode:

'xx ! ! ! x123x xa3x'

Primer

Naredimo tako, da je lahko število črk tudi nič:

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

Kot rezultat bomo dobili:

'! ! ! ! x123x xa3x'

Primer

Znotraj oglatih oklepajev lahko tudi navedemo escapane znake. Poiščimo zaporedje črk in številk, ki se ponavlja nič ali večkrat:

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

Rezultat izvajanja kode:

'! x@x ! ! !'

Primer

Če pa moramo navesti še ene oglate oklepaje, jih tudi obvezno escapamo:

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

Rezultat izvajanja kode:

'! ! ! x3x'

Praktične naloge

Podan niz:

txt = 'aba aea aca aza axa'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - črka 'b', 'e' ali 'x'.

Podan niz:

txt = 'a1a a3a a7a a9a aba'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - številka od 3 do 6.

Podan niz:

txt = 'aba aea afa aha aga'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - črka od 'a' do 'g'.

Podan niz:

txt = 'aba aea afa aha aga'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - črka od 'a' do 'f' in od 'j' do 'z'.

Podan niz:

txt = 'aAa aea aEa aJa a3a'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - črka od 'a' do 'f' in od 'A' do 'D'.

Podan niz:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - male latinične črke, ne da bi prizadel ostale.

Podan niz:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - male in velike latinične črke, ne da bi prizadel ostale.

Podan niz:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napišite regularni izraz, ki bo poiskal po naslednjem vzorcu: na robovih stojita črki 'a', med njima pa - male latinične črke in številke, ne da bi prizadel ostale.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni