⊗pyPmREHHy 47 of 129 menu

Brūkšnelis simbolių rinkiniuose Python reguliariosiose išraiškose

Brūkšnelis - taip pat specialus simbolis [ ] viduje (tačiau išorėje - ne). Jei jums reikia paties brūkšnelio kaip simbolio - padėkite jį ten, kur jis nebus suprastas kaip grupės skirtukas.

Kodėl tai svarbu: galite netyčia sukurti simbolių grupę. Pavyzdžiui, štai taip - '[:-@]' - jūs manote, kad pasirenkate dvitaškį, brūkšnelį ir 'eta' ženklą, tačiau iš tikrųjų susidaro simbolių grupė tarp : ir @. Į šią grupę įeina šie simboliai: ? < = > :

Iš kur jie atsirado? Iš ASCII lentelės - dvitaškis turi mažesnį numerį nei 'eta' - ir susidaro grupė. Tai yra, visos grupės susidaro pagal ASCII lentelę (jei norite, galite tuo naudotis).

Kaip su tuo kovoti: padėkite brūkšnelio simbolį ten, kur jis tikrai nebus suprastas kaip grupės simbolis, pavyzdžiui, pradžioje arba pabaigoje (tai yra po [ arba prieš ]).

Taip pat galite ekranuoti brūkšnelį - tada jis reikš save patį nepriklausomai nuo padėties. Pavyzdžiui, vietoj [:-@] parašyti [:\-@] - ir grupės jau nebus, o bus trys simboliai - dvitaškis, brūkšnelis ir 'eta' ženklas @.

Pavyzdys

Šiame pavyzdyje paieškos šablonas toks: skaitmuo 1, tada raidė nuo 'a' iki 'z', tada skaitmuo 2:

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

Kodo vykdymo rezultatas:

'! 1-2 ! !'

Pavyzdys

Dabar ekranuokime brūkšnelį. Rezultate paieškos šablonas toks: skaitmuo 1, tada raidė 'a', arba brūkšnelis, arba raidė 'z', tada skaitmuo 2:

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

Kodo vykdymo rezultatas:

'! ! 1c2 !'

Pavyzdys

Galima tiesiog perstatyti brūkšnelį, neekranuojant jo:

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

Kodo vykdymo rezultatas:

'! ! 1c2 !'

Pavyzdys

Šiame pavyzdyje paieškos šablonas toks: pirmas simbolis - tai mažosios raidės arba brūkšnelis '-', po to dvi raidės 'x':

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

Kodo vykdymo rezultatas:

'! Axx ! @xx'

Pavyzdys

Šiame pavyzdyje paieškos šablonas toks: pirmas simbolis - tai mažosios, didžiosios raidės arba brūkšnelis '-', po to dvi raidės 'x':

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

Kodo vykdymo rezultatas:

'! ! ! @xx'

Pavyzdys

Galima brūkšnelį patalpinti tarp dviejų grupių - ten jis tikrai nesukurs dar vienos grupės:

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

Kodo vykdymo rezultatas:

'! ! ! @xx'

Praktinės užduotys

Duota eilutė:

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

Raskite visas eilutes pagal šį šabloną: raidė 'x', didžioji arba mažoji raidė arba brūkšnelis, raidė 'z'.

Duota eilutė:

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

Raskite visas eilutes pagal šį šabloną: raidė 'x', tada arba dolerio ženklas, arba brūkšnelis arba pliuso ženklas, po to raidė 'z'.

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