⊗pyPmREHHy 47 of 129 menu

Pomišljaj znotraj nizov v regularnih izrazih Python

Pomišljaj - je tudi poseben znak znotraj [ ] (zunaj pa - ni). Če potrebujete sam pomišljaj kot simbol - ga postavite tja, kjer ne bo razumljen kot ločilo skupine.

Zakaj je to pomembno: lahko nenamerno ustvarite skupino simbolov. Na primer, tako - '[:-@]' - mislite, da izberete dvopičje, pomišljaj in znak @, a v resnici dobite skupino simbolov med : in @. V to skupino spadajo naslednji simboli: ? < = > :

Od kod so prišli? Iz tabele ASCII - dvopičje ima manjšo številko kot znak @ - in tako nastane skupina. To pomeni, da vse skupine nastanejo glede na tabelo ASCII (po želji lahko to uporabite).

Kako se s tem spopasti: postavite simbol pomišljaja tja, kjer zagotovo ne bo razumljen kot simbol skupine, na primer, na začetku ali na koncu (to je po [ ali pred ]).

Pomišljaj lahko tudi escapirate - potem bo vedno pomenil sam sebe, ne glede na položaj. Na primer, namesto [:-@] napišite [:\-@] - in skupine ne bo več, temveč bodo trije simboli - dvopičje, pomišljaj in znak @.

Primer

V naslednjem primeru je vzorec iskanja takšen: številka 1, nato črka od 'a' do 'z', nato številka 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a-z]2', '!', txt) print(res)

Rezultat izvajanja kode:

'! 1-2 ! !'

Primer

Zdaj pa escapirajmo pomišljaj. Kot rezultat je vzorec iskanja takšen: številka 1, nato črka 'a', ali pomišljaj, ali črka 'z', nato številka 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a\-z]2', '!', txt) print(res)

Rezultat izvajanja kode:

'! ! 1c2 !'

Primer

Pomišljaj lahko preprosto premaknete, ne da bi ga escapirali:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[az-]2', '!', txt) print(res)

Rezultat izvajanja kode:

'! ! 1c2 !'

Primer

V naslednjem primeru je vzorec iskanja takšen: prvi simbol - so male črke ali pomišljaj '-', nato dve črki 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

Rezultat izvajanja kode:

'! Axx ! @xx'

Primer

V naslednjem primeru je vzorec iskanja takšen: prvi simbol - so male, velike črke ali pomišljaj '-', nato dve črki 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

Rezultat izvajanja kode:

'! ! ! @xx'

Primer

Pomišljaj lahko postavite med dve skupini - tam zagotovo ne bo ustvaril nove skupine:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

Rezultat izvajanja kode:

'! ! ! @xx'

Praktične naloge

Podan niz:

txt = 'xaz xBz xcz x-z x@z'

Poiščite vse nize po naslednjem vzorcu: črka 'x', velika ali mala črka ali pomišljaj, črka 'z'.

Podan niz:

txt = 'xaz x$z x-z xcz x+z x%z x*z'

Poiščite vse nize po naslednjem vzorcu: črka 'x', nato ali dolar, ali pomišljaj ali plus, nato črka 'z'.

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