⊗pyPmREChS 40 of 129 menu

Rakstzīmju kopas Python regulārajās izteiksmēs

Rakstzīmju grupas \d un \w nav ļoti elastīgas. Pat tāds vienkāršs uzdevums kā atrast visas burtus, bet ne ciparus - nevar tikt atrisināts ar tām. Šādiem uzdevumiem vajadzētu izmantot kvadrātiekavas, kas apzīmē 'vai' operāciju.

Kvadrātiekavas aizstāj vienu rakstzīmi, jebkuru no uzskaitītajām iekšpusē. Piemēram, šādi: x[abc]x - mēs sakām, ka malās jāatrodas burtiem x, bet iekšpusē - viena rakstzīme: vai nu 'a', vai 'b', vai 'c'.

Pēc kvadrātiekavām var rakstīt atkārtošanās operatorus. Piemēram, šādi: x[abc]+x - mēs sakām, ka iekšpusē x var būt jebkurš rakstzīmju skaits 'a', 'b' un 'c' - jebkādās kombinācijās.

Var ne tikai uzskaitīt rakstzīmes, bet arī izveidot rakstzīmju grupas, ierakstot starp divām rakstzīmām defisi. Piemēram, šādi: [a-d] - mēs iegūstam visas rakstzīmes no 'a' līdz 'd'.

Apskatīsim piemērus.

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš burts no 'a' līdz 'z':

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

Koda izpildes rezultāts:

'! ! ! x@x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš burts no 'a' līdz 'k':

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

Koda izpildes rezultāts:

'! ! xmx x@x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš burts no 'A' līdz 'Z':

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

Koda izpildes rezultāts:

'xax ! xcx x@x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš cipars no 0 līdz 9:

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

Koda izpildes rezultāts:

'xax ! ! ! x@x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš cipars no 3 līdz 7:

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

Koda izpildes rezultāts:

'xax x1x ! ! x@x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš burts no 'a' līdz 'z' vai cipars no 1 līdz 9:

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

Koda izpildes rezultāts:

'! ! ! ! x@x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš burts no 'a' līdz 'z' vai burts no 'A' līdz 'Z':

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

Koda izpildes rezultāts:

'! ! ! x5x x@x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir jebkurš burts no 'a' līdz 'z' vai cipari 1, 2:

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

Koda izpildes rezultāts:

'! ! ! ! x3x'

Piemērs

Šajā piemērā meklēšanas šablons izskatās šādi: starp x ir burti no 'a' līdz 'z' daudzumā no 1 un vairāk:

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

Koda izpildes rezultāts:

'xx ! ! ! x123x xa3x'

Piemērs

Padarīsim tā, lai burtu daudzums varētu būt arī nulle:

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

Rezultātā mēs iegūsim:

'! ! ! ! x123x xa3x'

Piemērs

Kvadrātiekavu iekšpusē var arī norādīt ekrānētās rakstzīmes. Atradīsim burtu un ciparu secību, atkārtojoties nulli vai vairāk reizes:

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

Koda izpildes rezultāts:

'! x@x ! ! !'

Piemērs

Ja mums vajag norādīt vēl vienas kvadrātiekavas, tad mēs tās arī obligāti ekrānējam:

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

Koda izpildes rezultāts:

'! ! ! x3x'

Praktiskie uzdevumi

Dota virkne:

txt = 'aba aea aca aza axa'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - burts 'b', 'e' vai 'x'.

Dota virkne:

txt = 'a1a a3a a7a a9a aba'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - cipars no 3 līdz 6.

Dota virkne:

txt = 'aba aea afa aha aga'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - burts no 'a' līdz 'g'.

Dota virkne:

txt = 'aba aea afa aha aga'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - burts no 'a' līdz 'f' un no 'j' līdz 'z'.

Dota virkne:

txt = 'aAa aea aEa aJa a3a'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - burts no 'a' līdz 'f' un no 'A' līdz 'D'.

Dota virkne:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - mazie latīņu burti, neaizskarot pārējos.

Dota virkne:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - mazie un lielie latīņu burti, neaizskarot pārējos.

Dota virkne:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Uzrakstiet regulāro izteiksmi, kas atradīs pēc šāda šablona: malās atrodas burti 'a', bet starp tiem - mazie latīņu burti un cipari, neaizskarot pārējos.

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