⊗pyPmREHHy 47 of 129 menu

Defisks regulāro izteiksmju kopās Python

Defisks - arī ir speciāls simbols iekš [ ] (ārpus tiem - nav). Ja jums vajag pašu defisku kā simbolu - tad novietojiet to tur, kur tas netiks uztverts kā grupas atdalītājs.

Kāpēc tas ir svarīgi: jūs varat neievērojot izveidot simbolu grupu. Piemēram, šādi - '[:-@]' - jūs domājat, ka izvēlaties kolu, defisku un @ simbolu, bet patiesībā izveidojas simbolu grupa starp : un @. Šajā grupā ietilpst šādi simboli: ? < = > :

No kurienes tie nāk? No ASCII tabulas - kolas simbolam ir mazāks numurs nekā @ - un veidojas grupa. Tas ir, visas grupas veidojas pēc ASCII tabulas (ja vēlas, to var izmantot).

Kā ar to cīnīties: novietojiet simbola defisku tur, kur tas noteikti netiks uztverts kā grupas simbols, piemēram, sākumā vai beigās (tas ir, aiz [vai pirms ]).

Var arī ekrānēt defisku - tad tas apzīmēs pats sevi neatkarīgi no pozīcijas. Piemēram, [:-@] vietā rakstīt [:\-@] - un grupas vairs nebūs, bet būs trīs simboli - kols, defisks un @ simbols @.

Piemērs

Nākamajā piemērā meklēšanas šablons ir šāds: cipars 1, tad burts no 'a' līdz 'z', tad cipars 2:

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

Koda izpildes rezultāts:

'! 1-2 ! !'

Piemērs

Tagad ekrānēsim defisku. Rezultātā meklēšanas šablons ir šāds: cipars 1, tad burts 'a', vai defisks, vai burts 'z', tad cipars 2:

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

Koda izpildes rezultāts:

'! ! 1c2 !'

Piemērs

Var vienkārši pārkārtot defisku, neekrānējot to:

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

Koda izpildes rezultāts:

'! ! 1c2 !'

Piemērs

Nākamajā piemērā meklēšanas šablons ir šāds: pirmais simbols - mazie burti vai defisks '-', tad divi burts 'x':

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

Koda izpildes rezultāts:

'! Axx ! @xx'

Piemērs

Nākamajā piemērā meklēšanas šablons ir šāds: pirmais simbols - mazie, lielie burti vai defisks '-', tad divi burts 'x':

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

Koda izpildes rezultāts:

'! ! ! @xx'

Piemērs

Var novietot defisku starp divām grupām - tur tas noteikti vēl neizveidos vēl vienu grupu:

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

Koda izpildes rezultāts:

'! ! ! @xx'

Praktiskie uzdevumi

Dota virkne:

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

Atrodiet visas virknes pēc šāda šablona: burts 'x', lielais vai mazais burts vai defisks, burts 'z'.

Dota virkne:

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

Atrodiet visas virknes pēc šāda šablona: burts 'x', tad vai nu dolāra zīme, vai defisks vai plus zīme, tad burts 'z'.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt