⊗pyPmREChG 39 of 129 menu

Simbolių grupės Python reguliariosiose išraiškose

Yra specialių komandų, kurios leidžia iš karto pasirinkti ištisas simbolių grupes. Komanda \d reiškia skaitmenį nuo 0 iki 9. Komanda \w reiškia skaitmenį, lotynišką raidę arba brūkšnį apačioje. Komanda \s reiškia tarpą arba tarpinį simbolį: tarpą, eilutės pabaigą, tabuliaciją. Galima apversti komandos reikšmę, parašius didžiąją raidę: pavyzdžiui, jei \d - skaitmuo, tai \D - ne skaitmuo.

Pavyzdys

Raskime visus skaitmenis:

txt = '1 12 123' res = re.sub('\d', '!', txt) print(res)

Kodo vykdymo rezultatas:

'! !! !!!'

Pavyzdys

Kartojimo operatoriai laiko komandas-grupes vienetu, tai yra, grupuojantys skliaustai nereikalingi. Šiame pavyzdyje paieškos šablonas atrodo taip: skaitmuo nuo 0 iki 9 vieną ar daugiau kartų:

txt = '1 12 123 abc @@@' res = re.sub('\d+', '!', txt) print(res)

Kodo vykdymo rezultatas:

'! ! ! abc @@@'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: bet koks vienas ar daugiau kartų, bet ne skaitmuo nuo 0 iki 9:

txt = '123abc3@@' res = re.sub('\D+', '!', txt) print(res)

Kodo vykdymo rezultatas:

'123!3!'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: tarpinis simbolis vieną kartą:

txt = '1 12 123 abc @@@' res = re.sub('\s', '!', txt) print(res)

Kodo vykdymo rezultatas:

'1!12!123!abc!@@@'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: NE tarpinis simbolis vieną ar daugiau kartų. Visos eilutės, atskirtos tarpais, bus pakeistos į '!':

txt = '1 12 123 abc @@@' res = re.sub('\S+', '!', txt) print(res)

Kodo vykdymo rezultatas:

'! ! ! ! !'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: skaitmuo ar raidė vieną ar daugiau kartų. Visos eilutės, susidedančios iš skaitmenų ir raidžių, bus pakeistos į '!':

txt = '1 12 123a Abc @@@' res = re.sub('\w+', '!', txt) print(res)

Kodo vykdymo rezultatas:

'! ! ! ! @@@'

Pavyzdys

Šiame pavyzdyje paieškos šablonas atrodo taip: NE skaitmuo ir NE raidė vieną ar daugiau kartų. Pagal šį apibrėžimą mūsų atveju patenka '@@@' ir visi tarpai (juk jie taip pat nėra nei skaitmenys, nei raidės). Atkreipkite dėmesį į tai, kad pabaigoje vienas '!' - į jį pavirto eilutė ' @@@' - su tarpu priekyje:

txt = '1 12 123 Abc @@@' res = re.sub('\W+', '!', txt) print(res)

Kodo vykdymo rezultatas:

'1!12!123!Abc!'

Praktinės užduotys

Duota eilutė:

txt = 'a1a a2a a3a a4a a5a aba aca'

Parašykite reguliariąją išraišką, kuri ras eilutes, kuriose kraštuose yra raidės 'a', o tarp jų vienas skaitmuo.

Duota eilutė:

txt = 'a1a a22a a333a a4444a a55555a aba aca'

Parašykite reguliariąją išraišką, kuri ras eilutes, kuriose kraštuose yra raidės 'a', o tarp jų bet koks skaitmenų kiekis.

Duota eilutė:

txt = 'aa a1a a22a a333a a4444a a55555a aba aca'

Parašykite reguliariąją išraišką, kuri ras eilutes, kuriose kraštuose yra raidės 'a', o tarp jų bet koks skaitmenų kiekis (taip pat ir nulis skaitmenų, tai yra eilutė 'aa').

Duota eilutė:

txt = 'avb a1b a2b a3b a4b a5b abb acb'

Parašykite reguliariąją išraišką, kuri ras eilutes šio tipo: kraštuose yra raidės 'a' ir 'b', o tarp jų - ne skaičius ir ne tarpas.

Duota eilutė:

txt = 'ave a#b a2b a$b a4b a5b a-b acb'

Parašykite reguliariąją išraišką, kuri ras eilutes šio tipo: kraštuose yra raidės 'a' ir 'b', o tarp jų - ne raidė, ne skaitmuo ir ne tarpas.

Duota eilutė:

txt = 'ave a#a a2a a$a a4a a5a a-a aca'

Parašykite reguliariąją išraišką, kuri pakeis visus tarpus į '!'.

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