⊗pyPmREHHy 47 of 129 menu

Sidekriips komplektides Pythoni regulaaravaldistes

Sidekriips on samuti spetsiaalsümbol [ ] sees (aga väljaspool - mitte). Kui vajate sidekriipsu enda kui sümbolit - asetage see kohta, kus seda ei mõisteta rühmaeraldajana.

Miks see on oluline: võite teha sümbolite rühma isegi märkamata seda. Näiteks nii - '[:-@]' - te arvate, et valite koolonit, sidekriipsu ja @-märgi, kuid tegelikult saadakse sümbolite rühm vahemikus : kuni @. Sellesse rühma kuuluvad järgmised sümbolid: ? < = > :

Kust need said? Tabelist ASCII - koolonil on väiksem number kui @-märgil - ja sellest saabki rühm. See tähendab, et kõik rühmad saadakse ASCII tabeli järgi (soovi korral seda saab kasutada).

Kuidas sellega toime tulla: asetage sidekriipsu sümbol kohta, kus seda kindlasti ei mõisteta rühmasümbolina, näiteks alguses või lõpus (see tähendab pärast [ või enne ]).

Võite ka esitada sidekriipsu (escape) - siis see tähistab iseennast sõltumata asukohast. Näiteks [:-@] asemel kirjutada [:\-@] - ja rühma ei teki, vaid on kolm sümbolit - koolon, sidekriips ja @-märk @.

Näide

Järgmises näites on otsimismustriks: number 1, siis täht vahemikus 'a' kuni 'z', siis number 2:

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

Koodi täitmise tulemus:

'! 1-2 ! !'

Näide

Esitame nüüd sidekriipsu. Selle tulemusena on otsimismustriks: number 1, siis täht 'a', või sidekriips, või täht 'z', siis number 2:

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

Koodi täitmise tulemus:

'! ! 1c2 !'

Näide

Võite lihtsalt sidekriipsu ümber paigutada, ilma seda esitamata (escapimata):

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

Koodi täitmise tulemus:

'! ! 1c2 !'

Näide

Järgmises näites on otsimismustriks: esimene sümbol on väiketähed või sidekriips '-', siis kaks tähte 'x':

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

Koodi täitmise tulemus:

'! Axx ! @xx'

Näide

Järgmises näites on otsimismustriks: esimene sümbol on väike-, suurtähed või sidekriips '-', siis kaks tähte 'x':

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

Koodi täitmise tulemus:

'! ! ! @xx'

Näide

Sidekriipsu saab asetada kahe rühma vahele - seal kindlasti ei tee see veel üht rühma:

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

Koodi täitmise tulemus:

'! ! ! @xx'

Praktilised ülesanded

Antud on sõne:

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

Leidke kõik sõned järgmise mustri järgi: täht 'x', suur või väike täht või sidekriips, täht 'z'.

Antud on sõne:

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

Leidke kõik sõned järgmise mustri järgi: täht 'x', siis kas dollarimärk, sidekriips või plussmärk, siis täht 'z'.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu