⊗pyPmREChS 40 of 129 menu

Skupovi karaktera u regularnim izrazima Pajtona

Grupe karaktera \d i \w nisu veoma fleksibilne. Čak ni tako jednostavan zadatak, kao pronaći sva slova, ali ne brojeve - ne može biti rešen njima. Za takve zadatke treba koristiti uglaste zagrade, koje predstavljaju operaciju 'ili'.

Uglaste zagrade zamenjuju jedan karakter, bilo koji od navedenih unutra. Na primer, ovako: x[abc]x - mi kažemo da na krajevima treba da budu slova iks, a unutra - jedan karakter: ili 'a', ili 'b', ili 'c'.

Posle uglastih zagrada može se pisati operatori ponavljanja. Na primer, ovako: x[abc]+x - mi kažemo da unutra iksova može biti bilo koja količina karaktera 'a', 'b' i 'c' - u bilo kojoj kombinaciji.

Može se ne samo navoditi karaktere, već i kreirati grupe karaktera, pišući između dva karaktera crticu. Na primer, ovako: [a-d] - mi dobijamo sve karaktere od 'a' do 'd'.

Hajde da pogledamo na primerima.

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koje slovo od 'a' do 'z':

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

Rezultat izvršavanja koda:

'! ! ! x@x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koje slovo od 'a' do 'k':

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

Rezultat izvršavanja koda:

'! ! xmx x@x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koje slovo od 'A' do 'Z':

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

Rezultat izvršavanja koda:

'xax ! xcx x@x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koji broj od 0 do 9:

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

Rezultat izvršavanja koda:

'xax ! ! ! x@x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koji broj od 3 do 7:

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

Rezultat izvršavanja koda:

'xax x1x ! ! x@x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koje slovo od 'a' do 'z' ili broj od 1 do 9:

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

Rezultat izvršavanja koda:

'! ! ! ! x@x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koje slovo od 'a' do 'z' ili slovo od 'A' do 'Z':

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

Rezultat izvršavanja koda:

'! ! ! x5x x@x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova bilo koje slovo od 'a' do 'z' ili brojevi 1, 2:

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

Rezultat izvršavanja koda:

'! ! ! ! x3x'

Primer

U ovom primeru šablon pretrage izgleda ovako: između iksova slova od 'a' do 'z' u količini od 1 i više:

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

Rezultat izvršavanja koda:

'xx ! ! ! x123x xa3x'

Primer

Učinimo da količina slova može biti i nula:

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

Kao rezultat, dobićemo:

'! ! ! ! x123x xa3x'

Primer

Unutar uglastih zagrada takođe se može navoditi ekranizovani karakteri. Hajde da pronađemo sekvencu slova i brojeva, ponavljajuću nula ili više puta:

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

Rezultat izvršavanja koda:

'! x@x ! ! !'

Primer

Ako nam treba da navedemo još jedne uglaste zagrade, onda ih i mi obavezno ekraniramo:

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

Rezultat izvršavanja koda:

'! ! ! x3x'

Praktični zadaci

Data je niska:

txt = 'aba aea aca aza axa'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - slovo 'b', 'e' ili 'x'.

Data je niska:

txt = 'a1a a3a a7a a9a aba'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - broj od 3 do 6.

Data je niska:

txt = 'aba aea afa aha aga'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - slovo od 'a' do 'g'.

Data je niska:

txt = 'aba aea afa aha aga'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - slovo od 'a' do 'f' i od 'j' do 'z'.

Data je niska:

txt = 'aAa aea aEa aJa a3a'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - slovo od 'a' do 'f' i od 'A' do 'D'.

Data je niska:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - mala latinična slova, ne dotičući ostalih.

Data je niska:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - mala i velika latinična slova, ne dotičući ostalih.

Data je niska:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napišite regularni izraz koji će pronaći po sledećem šablonu: na krajevima stoje slova 'a', a između njih - mala latinična slova i brojevi, ne dotičući ostalih.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij