⊗pyPmREChS 40 of 129 menu

Simbolių rinkiniai Python reguliariosiose išraiškose

Simbolių grupės \d ir \w nėra labai lankstūs. Net toks paprastas uždavinys, kaip rasti visas raides, bet ne skaičius - negali būti išspręstas jų pagalba. Tokiems uždaviniams reikėtų naudoti laužtinius skliaustus, kurie atstovauja 'arba' operaciją.

Laužtiniai skliaustai pakeičia vieną simbolį, bet kurį iš išvardintų viduje. Pavyzdžiui, štai taip: x[abc]x - mes sakome, kad kraštuose turi būti raidės x, o viduje - vienas simbolis: arba 'a', arba 'b', arba 'c'.

Po laužtinių skliaustų galima rašyti kartojimo operatorius. Pavyzdžiui, štai taip: x[abc]+x - mes sakome, kad viduje x gali būti bet koks simbolių skaičius 'a', 'b' ir 'c' - bet kokiuose deriniuose.

Galima ne tik išvardyti simbolius, bet ir kurti simbolių grupes, rašant tarp dviejų simbolių brūkšnį. Pavyzdžiui, štai taip: [a-d] - mes gauname visus simbolius nuo 'a' iki 'd'.

Pažiūrėkime į pavyzdžius.

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri raidė nuo 'a' iki 'z':

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

Kodo vykdymo rezultatas:

'! ! ! x@x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri raidė nuo 'a' iki 'k':

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

Kodo vykdymo rezultatas:

'! ! xmx x@x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri raidė nuo 'A' iki 'Z':

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

Kodo vykdymo rezultatas:

'xax ! xcx x@x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri skaitmuo nuo 0 iki 9:

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

Kodo vykdymo rezultatas:

'xax ! ! ! x@x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri skaitmuo nuo 3 iki 7:

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

Kodo vykdymo rezultatas:

'xax x1x ! ! x@x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri raidė nuo 'a' iki 'z' arba skaitmuo nuo 1 iki 9:

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

Kodo vykdymo rezultatas:

'! ! ! ! x@x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri raidė nuo 'a' iki 'z' arba raidė nuo 'A' iki 'Z':

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

Kodo vykdymo rezultatas:

'! ! ! x5x x@x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x bet kuri raidė nuo 'a' iki 'z' arba skaitmenys 1, 2:

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

Kodo vykdymo rezultatas:

'! ! ! ! x3x'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarp x raidės nuo 'a' iki 'z' kiekis nuo 1 ir daugiau:

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

Kodo vykdymo rezultatas:

'xx ! ! ! x123x xa3x'

Pavyzdys

Padarykime taip, kad raidžių kiekis galėtų būti ir nulis:

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

Rezultate gausime:

'! ! ! ! x123x xa3x'

Pavyzdys

Viduje laužtinių skliaustų taip pat galima nurodyti ekranuotus simbolius. Suraskime raidžių ir skaitmenų seką, kartojamą nulį ar daugiau kartų:

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

Kodo vykdymo rezultatas:

'! x@x ! ! !'

Pavyzdys

Jei mums reikia nurodyti dar vienus laužtinius skliaustus, tai juos taip pat būtinai ekranuojame:

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

Kodo vykdymo rezultatas:

'! ! ! x3x'

Praktiniai uždaviniai

Duota eilutė:

txt = 'aba aea aca aza axa'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - raidė 'b', 'e' arba 'x'.

Duota eilutė:

txt = 'a1a a3a a7a a9a aba'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - skaitmuo nuo 3 iki 6.

Duota eilutė:

txt = 'aba aea afa aha aga'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - raidė nuo 'a' iki 'g'.

Duota eilutė:

txt = 'aba aea afa aha aga'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - raidė nuo 'a' iki 'f' ir nuo 'j' iki 'z'.

Duota eilutė:

txt = 'aAa aea aEa aJa a3a'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - raidė nuo 'a' iki 'f' ir nuo 'A' iki 'D'.

Duota eilutė:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - mažosios lotyniškos raidės, neliesdamos kitų.

Duota eilutė:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - mažosios ir didžiosios lotyniškos raidės, neliesdamos kitų.

Duota eilutė:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Parašykite reguliariąją išraišką, kuri ras pagal šį šabloną: kraštuose yra raidės 'a', o tarp jų - mažosios lotyniškos raidės ir skaitmenys, neliesdamos kitų.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti